Skip to content

Transfer Family

CloudMock emulates AWS Transfer Family, supporting managed SFTP/FTPS/FTP/AS2 servers, users with SSH public key management, workflows, and tagging. Server lifecycle transitions through OFFLINE → STARTING → ONLINE → STOPPING.

OperationStatusNotes
CreateServerSupportedValidates protocol types: SFTP, FTPS, FTP, AS2
DescribeServerSupportedReturns server details and endpoint URL
ListServersSupportedLists all servers
UpdateServerSupportedUpdates protocols and logging role
StartServerSupportedTransitions OFFLINE → STARTING → ONLINE
StopServerSupportedTransitions ONLINE → STOPPING → OFFLINE
DeleteServerSupportedDeletes a server
CreateUserSupportedValidates home directory starts with /
DescribeUserSupportedReturns user details and SSH keys
ListUsersSupportedLists users for a server
UpdateUserSupportedUpdates home directory and IAM role
DeleteUserSupportedDeletes a user
ImportSshPublicKeySupportedAdds SSH public key to user
DeleteSshPublicKeySupportedRemoves SSH public key
CreateWorkflowSupportedCreates a transfer workflow
DescribeWorkflowSupportedReturns workflow steps
ListWorkflowsSupportedLists all workflows
DeleteWorkflowSupportedDeletes a workflow
TagResourceSupportedAdds tags by ARN
UntagResourceSupportedRemoves tags by key
ListTagsForResourceSupportedLists tags by ARN
import boto3
client = boto3.client('transfer',
endpoint_url='http://localhost:4566',
region_name='us-east-1',
aws_access_key_id='test',
aws_secret_access_key='test')
# Create SFTP server
server = client.create_server(Protocols=['SFTP'])
server_id = server['ServerId']
# Create user
client.create_user(
ServerId=server_id,
UserName='alice',
Role='arn:aws:iam::123456789012:role/transfer-role',
HomeDirectory='/home/alice',
)
# Import SSH public key
client.import_ssh_public_key(
ServerId=server_id,
UserName='alice',
SshPublicKeyBody='ssh-rsa AAAA...',
)
services:
transfer:
enabled: true
  • No actual SFTP/FTP connections are accepted
  • Server endpoints are generated deterministically from the server ID
  • Workflow steps are stored but not executed on file uploads