Deploy

When working with Skuid applications, the term “deploy” is often used to describe two separate processes:

  • Deploying an application to end users in a specific environment, making the Skuid pages within it available at specific URLs to specific permission sets
  • Deploying an application’s resources from one Skuid environment to another—for example from a sandbox environment to a production environment

When deploying a Skuid app to end users, it’s important to consider how users can navigate your apps, as well as the type of deployment you’re facilitating.

How end users navigate to apps and app pages

When an end user visits your Skuid environment’s site URL, they will be taken to their default app—which is configured in their site permission set.

This default app can be set by navigating to Settings > People > Site Permission Sets, selecting the site permission set to configure, then enabling the Default app toggle by the appropriate app.

Note

If a user has no default app associated with their permission set, then Skuid will attempt to navigate users to any of the apps they have access to.

End users can also manually enter the URL for the app they wish to access, assuming they have access through their site permission set or an app permission set. As a builder you can facilitate end users navigating between apps by using the Go to Skuid Page action with the Navigation component.

Note

Skuid admins can navigate to different apps within the Skuid admin UI by clicking their name in the top right corner of the screen and hovering over My apps. However this is primarily intended for quick navigation for admins and developers—not end users.

Deploying an app to end users in an environment

An app and its pages are deployed to end users by configuring page URLs and user permissions. Page URLs determine where a user must go to access an app, while their permissions determine whether or not they can access the app—as well as the resources within it.

  • Page URLs can be configured from the Pages tab of the app detail screen. Click dots-vertical More Options > Configure URLs beside the page you wish to deploy. For more information on page URLs, see the Setting page URLs section of the Apps topic.
  • App permission sets can be configured from the Permissions tab of the app detail screen. For more information on granting app access through permission sets, see the Permissions in Skuid topic.

A high-level workflow for developing and deploying an app to end users would look similar to this:

  1. Creating and adding all necessary resources for an app—data sources, files, and Skuid pages.
  2. Adding any necessary app navigation within those Skuid pages, for example a Navigation component that links to other pages within the app—or other apps themselves
  3. Creating app permission sets that grant access to all necessary permissions to the necessary data sources of an app
  4. Assigning those permission sets to all necessary users
  5. Adding page URLs to each Skuid page within the app that will be deployed.

Once the proper permissions have been assigned, and the page URLs created, users can access their apps.

Deploying an app to another environment

Apps, and all of their associated resources, can be retrieved and deployed to other environments individually by using the skuid CLI.

Warning

If pages within your app use different design systems, only the app’s design system will be retrieved when using the skuid CLI. If possible, avoid using multiple design systems in a single app. If multiple design systems are required, be sure to manually deploy the additional design systems.

Assuming you have completed the prerequisite steps for working with skuid CLI, you can retrieve and deploy an app by doing the following:

  1. Open up your command prompt of choice, for example the macOS Terminal application.

  2. Enter the credentials for the site you are retrieving an app from, which can be done by setting environment variables or using the --username and --password flags with the command in the next step.

  3. Retrieve the app’s metadata (in this example, an app named Example app) using the --app flag:

    1
      skuid retrieve --app "Example app"
    

    Note

    If an app’s name contains spaces, be sure to encase it in quotes "".

  4. Enter the credentials for the site you are deploying an app to, which can be done by setting environment variables or using the``–username`` and --password flags with the command in the next step.

  5. Deploy the app’s metadata (in this example, an app named Example app) using the --app flag:

    1
      skuid deploy --app "Example app"
    

    Note

    If an app’s name contains spaces, be sure to encase it in quotes "".

For more information, see the –app flag section of the skuid CLI topic.

App Access and Profile Permissions

Once an app is created, it must then be assigned to profiles through the App Access tab. An app, and its routes/pages, cannot be accessed by any non-admin profiles until this has been done.

  1. Navigate to Settings > People > Profiles.
  2. Click Configure from the kebab menu beside the appropriate profile.
  3. Click the App Access tab
  4. Toggle the Allowed button beside the appropriate apps.

Note

Page permissions are determined by the apps containing them, not the pages themselves. Any pages not assigned a route within an app will not be viewable by any end user without an Admin profile.

This is particularly important when working with Page Includes, as each Skuid page used in the app must have an associated URL Slug even if the pages are never shown independently, i.e. outside of a Page Include component. These permission errors may manifest as empty pages or “session expired” messages.

See the user and permission management topic for more information about profiles.

Connecting Skuid Pages

While app and page URLs serve as the skeleton for a Skuid site’s URL framework, bundling pages into an app does not mean they speak to each other. A critical concept is that a page URL is not an A->B path to a page, nor can it be used for navigation in any way. A page URL points to a specific Skuid page, an “address” for that page.

App and page URLs do not provide built-in navigation nor do they send data between their Skuid pages. This becomes possible, however, by creating an app navigation bar and using URL parameters.

Check out Create an App Navigation Bar, where we build the navigation bar for the app described above.