User Guide Getting Started Help Center Documentation Community Training
New LookML
Old LookML
New LookML
Importing Files from Other Projects

You can use the experimental Labs feature Project Import to import files from other LookML projects and external repositories into your current project. This lets you use model files, view files, and other files in more than one project.

There are several use cases for this. A few examples:

To import files from another project, perform the following tasks:

  1. Create a project manifest file.
  2. Specify the projects from which you want to import.
  3. Include files from an imported project.

Create a Project Manifest File

All projects that import files from other projects must have a project manifest file. If your project doesn’t already have a manifest file, you can create one.

Specify the Projects from Which You Want to Import

To import projects, specify them in the manifest. There are two methods of doing so: locally and remotely.

Specifying Local Projects

In a local import, the imported project must be present on the same Looker instance. Versioning is dynamic, meaning that changes in the imported project will immediately impact the project that imports it. This is a good option when the same team owns both projects and can validate changes in both places before pushing to production.

To import locally, use the project_name parameter to specify the current project. Use one or more local_dependency parameters to specify the project or projects to import:

# This project project_name: "my_project" # The project to import local_dependency: { project: "my_other_project" }

Specifying Remote Projects

In a remote import, the imported project does not need to be on the same instance. Rather, the project is imported through its remote Git repository. Versioning is static; changes in the imported project will not automatically reflect in the project that imports it. The desired version of the imported project is explicitly indicated. This is a good option for using Looker Blocks.

To import a remote repository, use the remote_dependency parameter to specify the URL of the Git repository and the commit SHA representing the version of the repository you want:

remote_dependency: ga_360_block { url: "git://" ref: "4be130a28f3776c2bf67a9acc637e65c11231bcc" }

To get the URL for a remote repository, copy its HTTPS URL and replace https:// with git://.

You can find commit SHAs anywhere you can browse the commit history. Git service providers usually makes the SHA clearly visible and copyable.

The name (in this example above, ga_360_block) can be anything you like. It will be used when you include its files in the following step.

Adding Authentication Credentials for Private Remote Repositories

The Project Settings page includes the Import Credentials tab, where you can manage authentication credentials for private remote repositories:

The Import Credentials tab lists the URL for each remote repository that has been defined in the project manifest file, the type of authentication used for the repository, and whether Looker can successfully connect to the repository.

To add authentication credentials for a repository:

  1. Hover over a repository name to display the Test and Edit buttons, and click Edit:

    Looker displays a dialog box letting you configure credentials for the remote repository. The dialog box will reflect the type of credentials required.

  2. If the repository requires a username and password for authentication, enter your username and password and click Submit:

  3. If the repository requires an SSH key, Looker displays a dialog box showing your local SSH key. Click Copy Key to copy the SSH key to your clipboard, and add it to your repository’s list of keys:

  4. After saving the credentials, click Test button to test Looker’s access to the repository:

    After successfully connecting to the repository, the Import Credentials page shows a green check mark next to the repository name:

Include Files from an Imported Project

The include parameter in a model file specifies the dashboards, documentation, and view files that will be available to that model. To use include to reference a file in another project, preface the filename with the other project name.

For example:

include: "//my_other_project/imported_view.view" include: "//e-commerce/inventory_items.view" include: "//ga_360_block/ga_block.view"

You can use wildcards to include multiple files. For example, to include all view files in the IMPORTED_PROJECT project:

include: "//IMPORTED_PROJECT/*.view"

Although this syntax looks like a pathname, it doesn’t imply that files for the project are laid out in any particular way. You cannot use . or .. to specify relative paths as these are not paths — this is just how files are named in an include statement.

Including Model Files

You cannot directly include a model file. Models for a project can only come from that project.

If you want to reuse or extend Explores across projects, in the imported project you could put your Explores in a dedicated file that does not end with .model.lkml, such as .explore.lkml. Then include that file as described above.

Including Files That Also Include Files

When including a file that includes other files, all the includes are resolved before being passed on to the next project that includes it.

For example, if in your current project, you import a file A from another project proj_A and the imported file contains an include parameter that includes file B from project proj_B, then file B will be included into file A before file A is imported into the current project.

Importing Data Files

Files stored in the Data section of a project are not imported. To reference a data file from an imported project, such as in the map_layer parameter, use the full path and filename of the file. For example:

map_layer: json_from_imported_project { file: "//path_to_imported_project/folder/filename.topojson" … }