# Advanced Configuration

Configure advanced settings like URL allowlists and other options for the Airship React Native module.

## URL Allowlist

The URL allowlist controls which URLs the Airship SDK is able to act on. Configure the URL allowlist in your `takeOff` config options using the following properties:

- `urlAllowListScopeOpenUrl`: Only URLs allowed for this scope can be opened from an action, displayed in landing page, displayed in an HTML in-app message, or displayed as media in an In-App Automation. Defaults to any Airship-originated URLs and YouTube URLs.
- `urlAllowListScopeJavaScriptInterface`: These URLs are checked before the Airship JavaScript interface is injected into the webview. Defaults to any Airship-originated URLs.
- `urlAllowList`: Both scopes are applied to these URLs.

```ts
Airship.takeOff({
    default: {
        appKey: "REPLACE_WITH_YOUR_APP_KEY",
        appSecret: "REPLACE_WITH_YOUR_APP_SECRET"
    },
    site: "us",
    urlAllowList: ["*"],  // Accept all URLs
    // Or configure specific scopes:
    urlAllowListScopeOpenUrl: ["https://example.com/*", "https://*.youtube.com/*"],
    urlAllowListScopeJavaScriptInterface: ["https://example.com/*"]
});
```


**Valid URL pattern syntax**


```text
<pattern> := '*' | <scheme>'://'<host>/<path> | <scheme>'://'<host> | <scheme>':/'<path> | <scheme>':///'<path>
<scheme> := <any char combination, '*' are treated as wild cards>
<host> := '*' | '*.'<any char combination except '/' and '*'> | <any char combination except '/' and '*'>
<path> := <any char combination, '*' are treated as wild cards>
```


To accept any URL within the SDK, set the `urlAllowList` to `["*"]`.

For a complete list of configuration options, see the [AirshipConfig reference](https://www.airship.com/docs/reference/libraries/react-native/latest/interfaces/AirshipConfig.html).

