**Source URL:** https://general.veevavault.dev/regulatory/custom-pages/guides/page-configuration.md

# Configuring Custom Pages

To access your Custom Page in Vault, you must [create a `Page` component](#Creating_a_Page) and [configure access to it](#Configuring_Page_Access).

You can also configure navigation to your Custom Page using [tabs](#Creating_a_Tab) and [page links](#Creating_a_Page_Link) in the Vault UI.

## Creating a Page {#Creating_a_Page}

The [`Page`](/mdl/component-reference/component-types/page) component type links the client code and the server code for your Custom Page.

You can configure a Custom Page using MDL or the Vault Admin UI. Learn more about using the Vault UI to configure Custom Pages in [Vault Help](/812236).

When using MDL to create a `Page` component, use the following attributes:

| Attribute | Description | Format |
| --- | --- | --- |
| `client_distribution` | The name of your Custom Page Distribution in the `distribution-manifest.json` file | `Clientdistribution.{distribution_file_name}` |
| `page_client_code` | The name of your page in the `distribution-manifest.json` file | `Pageclientcode.{page_name}` |
| `page_controller` | The fully qualified name of your `PageController` | `Pagecontroller.{path.to.PageController}` |
| `url_path_name` | A unique URL-safe path to use to access your `Page` | `{url_path}` |

For example, the following MDL creates a `Page` component named `hello_world__c`:

```
RECREATE Page hello_world__c (
   label('Hello World!'),
   active(true),
   client_distribution('Clientdistribution.hello_world__c'),
   page_client_code('Pageclientcode.hello_world__c'),
   page_controller('Pagecontroller.com.veeva.vault.custom.pages.HelloWorld'),
   url_path_name('hello-world')
);

```

You can access the example Custom Page from the following URL: `https://$HOST/ui/#custom/page/hello-world`.

## Configuring Page Access {#Configuring_Page_Access}

Manage access to your Custom Page using [permission sets](#Managing_Page_Permissions).

You can [configure a tab](#Creating_a_Tab) to display your Custom Page or [create a page link](#Creating_a_Page_Link) that navigates the user to your Custom Page when interacting with an object record.

### Managing Page Permissions {#Managing_Page_Permissions}

A user's security profile must grant them permission to view a `Page` component.

To secure your Custom Page:

<Steps>
1. Go to **Admin > Users & Groups > Permission Sets**

2. Create or select a permission set

3. Navigate to the **Pages** tab

4. Click **Edit**

5. Enable **View** permission for your page

6. Save changes

</Steps>

### Creating a Tab {#Creating_a_Tab}

You can create a [`Tab`](/mdl/component-reference/component-types/tab) component to link to your Custom Page from your Vault's navigation bar.

Configure a tab using MDL or the Vault Admin UI. Learn more about Custom Page tabs in [Vault Help](/812236#Configure_Custom_Page_Tabs).

To access a Custom Page from a tab in the Vault UI, users must have the *View* permission for both the tab and the Custom Page.

The `url` must begin with `https://${Vault.domain}/ui/#custom/page/${Page.url_path_name}`. This includes [URL tokens](/mdl/documentation/guides/creating-web-sections#About_URL_Tokens) to retrieve the Vault domain and the path to the Custom Page. You can provide URL parameters to your `Page` component by appending them to the `url` value.

The following example uses MDL to create a `Tab` that references the `Page` configuration for a Custom Page:

```
RECREATE Tab hello_world__c (
   active(true),
   label('Hello World!'),
   order(100),
   page('Page.hello_world__c'),
   url('https://${Vault.domain}/ui/#custom/page/${Page.url_path_name}')
);

```

### Creating a Page Link {#Creating_a_Page_Link}

You can create a [`Pagelink`](/mdl/component-reference/component-types/pagelink) component to navigate users to your Custom Page when they perform one of the following actions on an object record in the Vault UI:

* View

* Edit

* Copy

* Create

Configure a page link using MDL or the Vault Admin UI. Learn more about page links in [Vault Help](https://platform.veevavault.help/en/gr/812236#Configure_Custom_Page_Links).

The `Page` component must be provided as a reference to a Custom Page with a name ending in `__c`, such as `Page.country_page__c`. The `url` must begin with `https://${Vault.domain}/ui/#custom/page/${Page.url_path_name}`. This includes [URL tokens](/mdl/documentation/guides/creating-web-sections#About_URL_Tokens) to retrieve the Vault domain and the path to the Custom Page. You can provide URL parameters by appending them to the `url` value.

The following example uses MDL to create a `Pagelink` component that navigates to the specified Custom Page when a user views a *Country* record:

```
RECREATE Pagelink custom_pagelink__c (
   label('Custom Page Link'),
   mode('View'),
   object('Object.country__v'),
   page_type('Object'),
   page('Page.country_page__c),
   url('https://{{Vault.domain}}/ui/#custom/page/{{Page.url_path_name}}')
);

```


---

**Previous:** [Managing Data Flow](/regulatory/custom-pages/guides/data-management)  
**Next:** [UI Library Integration](/regulatory/custom-pages/guides/ui-libraries)