Connect
Connect is a way to easily getting files into the Signapse AI platform, in addition to getting completed translations out. This is all without having to manually upload or download files.
Integrations
| Integration | Status |
|---|---|
| S3 | Completed |
| Sharepoint | TBD |
| Google Drive | TBD |
| Dropbox | TBD |
S3
With our S3 integration, you can upload files to a specific S3 bucket and Signapse will automatically download, process and upload the translation back to the bucket.
How It Works
The integration works by periodically checking your S3 bucket for new files.
- You upload a video file (e.g.,
my-video.mp4) to your specified S3 bucket. - Every 15 minutes, Signapse scans the bucket for new files.
- When a new file is found, it is added to a queue for translation. The original file is not moved or modified.
- Once the translation is complete, the new video file is uploaded back to your bucket with a
completed/prefix.
| Original File Location | Translated File Location |
|---|---|
s3://<your-bucket-name>/my-video.mp4 | s3://<your-bucket-name>/completed/my-video.mp4 |
At present, the integration does not have a separate error handling path. If a file fails to process, it will not result in a file being placed in a failed/ folder. Please check SignStudio for the status of the translations.
Prerequisites
Before you begin, you will need:
- An AWS account and Account ID
- An S3 bucket
- An IAM role with access to the S3 bucket
The setup involves two main steps:
-
Configure an IAM Role in your AWS account: This secure role grants Signapse the specific, limited permissions needed to access your bucket.
-
Configure the Integration in SignStudio: You will tell Signapse your AWS Account ID and bucket name so it can use the role you created.
Step 1: IAM Role
This is the role, Signapse will assume to download and upload files.
This role must be called: SignapseS3ConnectRole
Bucket Access
This policy grants Signapse the minimum permissions required. It allows us to list the files in your bucket, read/download them, and write/upload the completed translations.
| Action | Resource |
|---|---|
s3:ListBucket | arn:aws:s3:::<your-bucket-name> |
s3:GetObject | arn:aws:s3:::<your-bucket-name>* |
s3:GetObjectAttributes | arn:aws:s3:::<your-bucket-name>* |
s3:PutObject | arn:aws:s3:::<your-bucket-name>* |
Policy
Create a new IAM policy with the following JSON, replacing <your-bucket-name> with the actual name of your bucket.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowSignapseToSeeBucketContents",
"Effect": "Allow",
"Action": [
"s3:ListBucket"
],
"Resource": "arn:aws:s3:::<your-bucket-name>"
},
{
"Sid": "AllowSignapseToReadAndWriteObjects",
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:GetObjectAttributes"
],
"Resource": "arn:aws:s3:::<your-bucket-name>/*"
}
]
}Trusted Entities
Next, you must configure the role’s trust relationship. This ensures that only specific Signapse services are able to assume this role.
There are the following services:
arn:aws:iam::430916267664:role/production-connect-api-lambda-iam-rolearn:aws:iam::430916267664:role/production-connect-s3-sync-lambda-iam-rolearn:aws:iam::430916267664:role/production-connect-s3-completer-lambda-iam-role
Trusted Entities Example
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": [
"arn:aws:iam::430916267664:role/production-connect-api-lambda-iam-role",
"arn:aws:iam::430916267664:role/production-connect-s3-sync-lambda-iam-role",
"arn:aws:iam::430916267664:role/production-connect-s3-completer-lambda-iam-role"
]
},
"Action": "sts:AssumeRole",
"Condition": {}
}
]
}Step 2: Integration Setup
Navigate to the Connect page from the sidebar and click the S3 integration Connect button, this will provide you with an example of the IAM role.
Enter the AWS Account ID and the Bucket name.
The bucket name must be the same as the bucket as setup in the IAM role policy.