Skip to content
GitHubXDiscord

WebApp

The WebApp resource lets you manage AWS Transfer WebApps for file transfer services, providing a customizable web interface for your users.

Create a basic AWS Transfer WebApp with essential properties and one optional customization.

import AWS from "alchemy/aws/control";
const basicWebApp = await AWS.Transfer.WebApp("basicWebApp", {
IdentityProviderDetails: {
ProviderType: "SERVICE_MANAGED"
},
WebAppCustomization: {
Title: "My WebApp",
Logo: "https://example.com/logo.png"
}
});

Configure an AWS Transfer WebApp with advanced settings including a custom endpoint policy and additional web app units.

const advancedWebApp = await AWS.Transfer.WebApp("advancedWebApp", {
IdentityProviderDetails: {
ProviderType: "API_GATEWAY",
Url: "https://example.com/auth"
},
WebAppUnits: {
User: {
Enable: true,
MaxSize: 5000
}
},
WebAppEndpointPolicy: JSON.stringify({
Version: "2012-10-17",
Statement: [
{
Effect: "Allow",
Action: "transfer:ListUsers",
Resource: "*"
}
]
}),
Tags: [
{
Key: "Project",
Value: "WebAppProject"
}
]
});

Set up a web app with a specific access endpoint to control user access.

const customAccessWebApp = await AWS.Transfer.WebApp("customAccessWebApp", {
IdentityProviderDetails: {
ProviderType: "SERVICE_MANAGED"
},
AccessEndpoint: "https://transfer.example.com",
WebAppCustomization: {
Title: "Custom Access WebApp",
Logo: "https://example.com/custom-logo.png"
}
});

If you need to adopt an existing AWS Transfer WebApp instead of creating a new one, set the adopt property to true.

const adoptedWebApp = await AWS.Transfer.WebApp("adoptedWebApp", {
IdentityProviderDetails: {
ProviderType: "SERVICE_MANAGED"
},
adopt: true
});