Cloud IDE

FAQs and troubleshooting

How can I manage Cloud IDE?

To create, delete, list or open Cloud IDE, you can either use the Cloud Platform interface or install Acquia CLI.

How can I manage permissions for Cloud IDE?

When managing your Cloud Platform organization’s roles, you can configure two permissions:

  • Create and manage own Cloud IDE: to create, access, and remove personal Cloud IDE within an application.
  • Manage any Cloud IDE: to list and remove any Cloud IDE within an application. This permission doesn’t grant the user access to the contents of the Cloud IDE.

Can I transfer Cloud IDE ownership to someone else?

No. Cloud IDE stores sensitive information such as your Cloud Platform API and SSH keys. Therefore, any IDE created is yours only.

Are there browser requirements for Cloud IDE?

Cloud IDE is powered by the Open Source project Theia. While the community tries its best to ensure compatibility with most modern browsers, it is recommended to use browsers based on Chromium for the best user experience.

Can I use Cloud IDE with an external Git repository?

Yes, you can use any Git repository such as GitHub, Bitbucket, or GitLab. You must install an SSH key in the Acquia Cloud IDE that has permissions to access the external repository.

Can I share my Cloud IDE?

Cloud IDE hosts your personal SSH and API keys so that you can seamlessly integrate with the Cloud Platform applications and services. When you create an IDE, it’s yours and can’t be shared for security reasons. However, you can share the preview site with your customers or QA team. To achieve this, use the acli ide:share command to obtain the share URL.

Can I run a multisite application on Cloud IDE?

Cloud IDE has one preview URL, which means you can only serve one site at a time. When running the acli pull command, you can select any arbitrary database or files directory to pull from. You can switch sites at any point in time by using the acli pull command again and pulling a different database and files directory.

Cloud IDE only recognizes the sites/default directory by default. To serve other sites in other directories, we recommend you to use path-based multisite.

To configure path-based multisite for an example site located under sites/foo:

  1. Pull your application in Cloud IDE. Ensure that you pull the database and files directory that correspond to the foo site.
  2. Add a foo symlink in the docroot directory, for example, cd /home/ide/project/docroot && ln -s . foo, so that Drupal does not try to serve the foo path.
  3. Modify /home/ide/project/docroot/sites/sites.php to add $sites = ['cloud.foo' => 'foo'];. The first foo must match the symlink / path to access the multisite, and the second foo must match the name of the site directory on the disk. These are generally same but not always.

How can I tell whether my IDE is running on the latest version?

At any point in time, all IDEs run on the same version of the software. However, Acquia cannot carry through a few updates to existing IDEs. For example, Acquia might not be able to properly apply the updates to .bashrc if you have have customized it greatly.

Therefore, Acquia continues to recommend customers to view Cloud IDE as a disposable resource that can be destroyed and recreated at will. To leverage the latest and greatest IDE software, ensure that you periodically recreate your IDE. Acquia recommends you to recreate your IDE once per quarter.

Which Cloud Platform products is Cloud IDE compatible with?

Cloud IDE is compatible with all Cloud Platform products and Site Factory.

Why am I getting an Access Denied error when trying to log in to my website?

When pulling your application in Cloud IDE, Acquia automatically sanitizes your database for security purposes. In other words, Acquia obfuscates sensitive user data such as (but not limited to) email addresses and passwords.

This means you will get an Access Denied error (403) when trying to log in to your website at /user/login. Instead, run the following Drush command from your /home/ide/project directory to obtain a one-time login URL.

drush uli
                                        https://<UUID>.web.ahdev.cloud/en/user/reset/1/1649572871/<TOKEN>/login
                                        

To override the default behavior, run the following command:

acli pull --no-scripts
                                        

Where can I find the Drupal watchdog log in Cloud IDE?

The Drupal watchdog log is available under /var/log/drupal/drupal-watchdog.log. Read our documentation about it for more information.

How can I access Acquia Search from Cloud IDE?

Cloud IDE does not include a dedicated Acquia Search index (core). To allow the Cloud IDE preview site to write to an Acquia Search index, you must implement a code override for the environment. For more information, see Overriding Solr index connection switching.

Can I upload large files in my IDE?

Yes. File uploads are supported up to 256 MB. Acquia does not recommend uploading files larger than 256 MB in the browser. For uploading larger files, you should take a different approach.

Note

You can upload a file directly in the IDE by dragging and dropping the file directly onto the IDE Explorer panel.

How does Cloud IDE integrate with Acquia Pipelines?

If you configure the Pipelines to work with your Git repository, all Git pushes to the repository, or pull requests (PRs) opened from your external provider, will trigger a Pipelines job.

Is Cloud IDE compatible with my custom VCL file?

Yes. If you have a custom Varnish Configuration Language (VCL) file, you can opt-in for Cloud IDE ACLs (Access Control List), which seamlessly pulls your application in Cloud IDE while ensuring the security of your application.

To opt-in for Cloud IDE ACLs, add the following line to your customizable ACL section:

std.ip(req.http.client-ip, "127.0.0.2") !~ acquia_acls_cloudides
                                        

Is Cloud IDE compatible with Shield?

Yes. However, you must explicitly add Cloud IDE NAT gateways to the allowlist to synchronize your application. Contact Acquia Support for assistance.

Why can’t I save changes made to settings.php?

After Drupal is installed, the settings.php file gets write-protected. On the Cloud Platform, this is not an issue as the filesystem is read-only. However, in Cloud IDE, as you can edit files, you might run into this issue.

To make Drupal’s settings.php writable, run the following command from within the project directory:

ide:~/project $ chmod 644 docroot/sites/[yoursite]/settings.php
                                        

Once your changes are made, run the following command to make the file write-protected again:

ide:~/project $ chmod 444 docroot/sites/[yoursite]/settings.php
                                        

Why can’t I delete certain files or directories in the Drupal docroot?

While trying to delete files or directories in the Drupal docroot, you might get the following Permission denied messages:

ide:~$ rm -Rf project
                                        rm: cannot remove 'project/docroot/sites/default/files': Permission denied
                                        rm: cannot remove 'project/docroot/sites/default/default.settings.php': Permission denied
                                        rm: cannot remove 'project/docroot/sites/default/settings.php': Permission denied
                                        rm: cannot remove 'project/docroot/sites/default/default.services.yml': Permission denied
                                        

The above issue is related to Drupal permissions. Before you can delete those files or directories, you must change permissions.

To do so, run the following command:

chmod -R u+w /home/ide/project/docroot/sites/default
                                        

You can now delete those files and directories.

Why am I getting a redirect loop when visiting the IDE web preview URL?

You might have a contributed or custom module that causes a redirect loop. Here’s a list of contributed modules that can cause this issue:

Your .htaccess file might be configured in a way that is incompatible with Cloud IDE. See Excluding Acquia domains and non-production environments and redirecting visitor requests with the .htaccess file.

How can I set a custom environment variable to use with my application?

If you set a custom environment variable through dotfiles or the terminal, the variable is not available in your Drupal application. Therefore, you must create a new .conf file under /home/ide/configs/apache2. The following is an example:

1. Create the variables.conf file and populate it with one or more SetEnv lines to declare your custom environment variables:

SetEnv FOO "bar"
                                        
  1. Restart Apache:
ide:~$ acli ide:service-restart apache
                                        
  1. Print the new environment variable in your application:
print $_ENV["FOO"];
                                        

Drupal should return bar.

Why isn’t Varnish available in Cloud IDE?

One of the first things new Acquia customers ask our Support team is how to disable Varnish in non-production Cloud Platform environments, so that they can view their changes immediately. Taking this feedback into account, we’ve decided not to include Varnish in Cloud IDE so it’s easier to develop Drupal without any external caching in the way.

How can I audit the Cloud IDE lifecycle?

It is useful to understand who created or deleted an IDE. To achieve this, use Acquia CLI, as Acquia CLI lets you filter out your Cloud Platform notifications easisly. Ensure that you adjust the --limit parameter to make it relevant. The rule of thumb is: the more you have Cloud Platform notifications, the more you’ll have to increase the limit.

$ acli api:applications:notification-list myapplication --limit=100 | grep -B2 -A1 IDE
                                                "uuid": "2b328ed0-74be-413d-a3f9-d19c74a96239",
                                                "event": "RemoteIdeCreatedEvent",
                                                "label": "IDE created",
                                                "description": "IDE \"Mary\" created for \"My Application\".",
                                                "created_at": "2021-03-15T13:35:21+00:00",
                                        --
                                                "uuid": "p14300b9-cf78-46b6-bh3a-005d73bc6836",
                                                "event": "RemoteIdeDeletedEvent",
                                                "label": "IDE removed",
                                                "description": "IDE removed from \"My Application\".",
                                                "created_at": "2021-03-12T20:58:32+00:00",
                                        

Why can I not create a new IDE?

For a subscription with multiple applications, the Cloud IDE entitlement is shared across all such applications. If you have used all your IDE entitlements, you can delete an active IDE, and create a new one. For viewing the list of active IDEs, see How can I find all active IDEs for a subscription with multiple applications?.

How can I find all active IDEs for a subscription with multiple applications?

The Cloud Platform UI has the concept of application relationships. This means multiple applications can be logically tied together to a parent subscription. Therefore, it might be complicated to determine the application(s) containing those IDEs.

Querying the Cloud Platform API can help with getting this information. Run the following command after replacing <SubscriptionUUID> with your subscription UUID:

$ acli api:subscriptions:ide-list <SubscriptionUUID> | jq -r '.[] | "Label: " + .label + "\nOwner: " + ._embedded.owner.email +  "\nSubscription: " + ._links.application.href + "\n"'
                                        Label: myfirstide
                                        Owner: [email protected]
                                        Subscription: https://cloud.acquia.com/api/applications/<applicationUUID1>
                                        Label: mysecondide
                                        Owner: [email protected]
                                        Subscription: https://cloud.acquia.com/api/applications/<applicationUUID2>
                                        Label: mythirdide
                                        Owner: [email protected]
                                        Subscription: https://cloud.acquia.com/api/applications/<applicationUUID3>
                                        

To view all applications related to your subscription UUID, visit the following URL: https://cloud.acquia.com/a/subscriptions/<SubscriptionUUID>/views

Can I serve pages on custom ports?

No. Cloud IDE is restricted to serving pages over port 80 only. Acquia might support custom ports in the future, such as port 8080, so you can run alternate development servers.

How can I create a Chrome application from an IDE browser tab?

Follow the procedure to Add a shortcut to a website as an app. When prompted to create the shortcut, make sure to check the Open as window checkbox. To locate your application, visit chrome://apps/ in your browser.

Can I install or compile PHP extensions?

Cloud IDE supports the exactly same PHP extensions that are installed on the Cloud Platform. However, compiling or installing PHP extensions is not supported.

For more information about compiling and installing PHP extensions on the Cloud Platform, see this page.

Why is Acquia CLI running a different PHP version than my application?

Acquia CLI is a modern Symfony Console application that is pinned to use the latest PHP version available in Cloud IDE. As such, even when you select a different PHP version to use for your application, it does not affect the PHP version used by Acquia CLI.

Why is my IDE running out memory?

An IDE has certain resource limits, especially for memory. If this memory limit is reached, processes are killed and the IDE might restart.

Note

Certain commands, such as free and top, do not accurately report available memory in a Cloud IDE. Instead, use the following commands to view memory usage and the memory limit:

  • cat /sys/fs/cgroup/memory/memory.usage_in_bytes
  • cat /sys/fs/cgroup/memory/memory.limit_in_bytes

The IDE memory limit cannot be increased. If a program is frequently running out of memory, you must reduce its memory usage by one of the following methods:

  • Check for any known issues related to memory leaks or excessive memory usage.
  • Update the program to the latest version. For example, the latest releases of Composer, NPM, and Yarn use much less memory than earlier releases.
  • Check if the program has an internal memory limit that is less than the IDE limit. For example, PHP processes have their own memory limit.
  • Profile the process by using a debugger to see if memory usage can be reduced. For example, Xdebug can be used to profile the memory usage of PHP scripts.

How can I view the count of unused environments?

To view the count of unused environments:

  1. Sign in to the Cloud Platform user interface and visit your application dashboard.
  2. Go to Actions > Create Cloud IDE.

    The system displays a Create Cloud IDE dialog box.

  3. Under Enter a label for the new IDE, check the warning message to know the count of unused environments.