diff --git a/_sidebar.md b/_sidebar.md index b431d91..d1d60a0 100644 --- a/_sidebar.md +++ b/_sidebar.md @@ -1,6 +1,4 @@ * [Overview](/) * Getting Started * [Try out CFT Sandbox](getting-started/try-out-sandbox) - * [Quick Start Guide](getting-started/sandbox-quick-start-guide) - * [Glossary](getting-started/glossary) * [FAQs](getting-started/faqs) \ No newline at end of file diff --git a/getting-started/faqs.md b/getting-started/faqs.md index 2831c40..5f52f8c 100644 --- a/getting-started/faqs.md +++ b/getting-started/faqs.md @@ -2,100 +2,206 @@ ## Business Users -Design questions to influence purchasing decision - ### About CFT -1. What is Cloud File Transfer? -**Cloud File Transfer \(CFT\)** is a centralized, light-weight, fully managed, API-driven service that allows agencies or businesses to transfer files easily, securely and efficiently at scale. +**What is Cloud File Transfer (CFT)?** + +A centralised, fully managed file transfer service for the whole-of-government (WOG). + +This service is a part of the Singapore Government Tech Stack (SGTS) and is hosted on the Government Commercial Cloud (GCC). + +Core capabilities: + +- Compliant cross-zone file transfers according to IM8 +- Malware scanning with Content Disarm and Reconstruct (CDR) +- File Encryption for data integrity and security +- Application Programming Interface (API) access for web and mobile applications +- Event-driven with file download notifications + +**What are the benefits of using CFT?** + +CFT can benefit agencies who need to: + +- Transfer large files across zones +- Move files securely +- Automatically scale based on their transfer needs +- Customize workflows +- Audit and monitor their file transfer activity +- Accelerate digitization of government services + +**What is cross-zone file transfer?** + +The IM8 policy requires applications to be separated into internet and intranet zones. Transfering files from one zone to another is refered to as a cross-zone file transfer. + +**Will CFT be available for my use?** + +CFT is available for government agencies, their business partners, and vendors. + +**What are the different integration options?** + +CFT will support the following integration options: + +- CFT for Backend Systems - File transfers between systems. +- CFT for Web and Mobile Applications - File transfers between end-user and system. + +**What type of encryption does CFT support?** + +CFT supports industry and IM8 compliant standards for:  + +- Encryption at rest: + +Data is encrypted at-rest on the commercial cloud hosting environment with Amazon Web Services (AWS) Simple Storage Service Server Side Encryption Key Management Service (S3 SSE-KMS) (IM8 8.3/S2) + + +- Encryption in transit: + +HTTPS over Transport Layer Security version 1.2 (TLS 1.2) and above (IM8 3.1/S3) + +**What are the requirments to use CFT?** + +[Sign up for a CFT Production](https://form.gov.sg/#!/603cff5e399059001248f7d4/preview) and we will get back to you as soon as possible. + +**When will it be available?** +CFT for Backend Systems will be Generally Available from end 2021. -2. What are the benefits of using CFT? +### Data Classification -- Plug and play +**What data classification does CFT support?** -Start transferring files in minutes without the operational cost and overheads of building and maintaining a similar service. Developed by the same team that built the cross zones bridging in APEX, CFT lets you focus your project resources on user centric functionalities that matter most to citizens and businesses. +CFT is hosted in GCC which can support up to Restricted. -- Built-in scalability with no lock-in on your side +### Project Information -Eliminates the need to manage your own infrastructure or worry about over or under provisioning. CFT runs on planet-scale infrastructure. Whether it is zero to N transfers, or seasonal spikes, CFT scales automatically for you. +**How do I access CFT admin portal?** -- Application Infrastructure Architecture Standard Compliant +TechPass is required to log in to the CFT admin portal. -Compliance is hard. Staying compliant is harder. CFT complies to IM8's AIAS policy and will ensure compliance with future policy updates. +**How do I monitor resource utilization of my projects?** -- Customized file transfers +From the CFT admin portal. -Policy templates allow you to define policies and customize your file transfers. +**How many projects can I have?** -- Data integrity -Consistent and accessible data in real-time across multiple touchpoints. Secure file transfer mechanisms make sure that your files arrive intact from source to destination. +Each subscription is entitled to one project. -3. How does it work? +**What are the limits for the file transfers?** +An unlimited number of files and up to 1GB file size per transfer. -4. Where is it hosted? +**How long will the files be stored in CFT?** +Fourteen days, after which the files will be purged. -5. Is it compatible with web-based applications or mobile app? +**What happens if the file contains malware?** -6. When will it be available? +- CFT for Backend Systems - File will be moved to dirty bucket , file status will be updated to ‘FileCopiedToDirtyBucket’  +- CFT for Web and Mobile Applications - TBC +**I need more help. How do I contact you?** -### Subscription/Billing +Send us an email at [enquiries_CFT@tech.gov.sg](enquiries_CFT@tech.gov.sg) and we will respond to you as soon as possible. +### Integration -1. Pricing Information? +**How do I integrate CFT with my application?** -2. What are the package options you offer? +- For CFT for Backend Systems, refer to [Integration guide](integration-guide-cft-for-backend-systems) and the API specs +- For CFT for Web and Mobile Applications refer to [Integration guide](integration-guide-cft-for-web-and-mobile-applications) -Customizable workflows. +### Subscription -3. Can I add-on or scale down my package options? +**Where can I find the pricing information?** -Yes you can add-on or scale down your package options at any time. +Please contact [Support](mailto:enquiries_CFT@tech.gov.sg) for more information. -4. Can I monitor the resource utilization of my projects? +**How do I modify my subscription tier options?** -Yes we have a self-service admin portal that allows you to view and manage the resource utilization of your projects. +Please contact [Support](mailto:enquiries_CFT@tech.gov.sg) for more information. -5. Can I download billing reports? +**How do I download billing reports?** -6. How do I terminate my subscription? +Please contact [Support](mailto:enquiries_CFT@tech.gov.sg) for more information. -7. I am interested in trying out CFT service, do you offer a trial? +**I am interested in trying out CFT service, do you offer a trial?** - Yes we do. We offer a sandbox environment for you to try out our APIs and get a feel of the file transfer process. +We offer a sandbox environment for you to try out our APIs and get a feel of the file transfer process. - Please follow the steps below to sign up: +Please follow the steps below to sign up: +1. Fill up the [onboarding form.](https://form.gov.sg/#!/60a4cca76179d60012cdacac/preview) +2. We will send you an email with the sandbox credentials. +3. Start testing with [OpenAPI specifications](https://docs.developer.gov.sg/docs/cft-rest-api-documentation/) or call the APIs from applications. -- Fill up the [onboarding form.](https://form.gov.sg/#!/60a4cca76179d60012cdacac/preview) -- We will send you an email with the sandbox credentials. -- Start testing with [OpenAPI specifications](https://docs.developer.gov.sg/docs/cft-rest-api-documentation/) or call the APIs from applications. +**If I am interested to subscribe, what are the next steps?** + +[Sign up for a CFT production](https://form.gov.sg/#!/603cff5e399059001248f7d4/preview) to start transferring files on your live applications. + +**How do I terminate my subscription?** + +Please contact [Support](mailto:enquiries_CFT@tech.gov.sg) for more information. -8. Can't find what you are looking for? Email us at: ## Customer Support -Design questions to reduce support efforts for the CFT Support team +### Onboarding Issues + +**I can't access CFT admin portal** + +You need to be a TechPass user to log in to CFT admin portal. +If you do not have a TechPass account, click [here.](https://portal.stg.techpass.suite.gov.sg/public/home) + +**My system has connectivity issues to CFT services** -### Admin Portal +Ensure that you have submitted the Firewall openings. Check your agency Firewall logs and Content Delivery Network (CDN) (if any) for any blockage. -1. I am unable to login to admin portal +### Login Issues -A TechPass account is required to access admin portal. +**I am unable to login to CFT admin portal?** -If you do not have a TechPass account, click [here.]\[insert link \] +A TechPass account is required to access CFT admin portal. If you do not have a TechPass account, click [here.](https://portal.stg.techpass.suite.gov.sg/public/home) If you are a TechPass user, your account may have been disabled due to inactivity. You will need to enable it. -2. My TechPass account is disabled, how do I enable it? +**My TechPass account is disabled? How do I enable it?** + +Your Agency Manager will need to raise a Service Request in the [TechPass portal](https://portal.stg.techpass.suite.gov.sg/public/home) to enable your account. + +**How do I reset my TechPass password?** + +You can reset password in the [TechPass portal](https://portal.stg.techpass.suite.gov.sg/public/home). + +### Account Management Issues + +**I am unable to add/remove users in my project** + +You will need to have the Agency Manager role to add or remove users. Also, your users will need to have a TechPass account. + +**I can't amend the user roles in my project** + +You will need to have the Agency Manager role to amend user roles. Also, your users will need to have a TechPass account. + +### File Transfer Issues + +**I am not able to send files** + +Here are a couple of troubleshooting steps: + +- Check if workflow status is active on the portal. + +If you need any assistance, please take note of the x-cft-trace-id request header and contact [Support](mailto:enquiries_CFT@tech.gov.sg) + +**I am not able to receive files** + +Here are a couple of troubleshooting steps: + +- Check if workflow status is active on the portal. + +If you need any assistance, please take note of the x-cft-trace-id request header and contact [Support](mailto:enquiries_CFT@tech.gov.sg) + +**How will I be notified if my files fail to transfer?** -Your Agency Manager will need to raise a Service Request in TechPass portal to enable your account. +Please contact [Support](mailto:enquiries_CFT@tech.gov.sg) for more information. -### General -1. I am not able to send files -2. I am not able to receive files diff --git a/getting-started/glossary.md b/getting-started/glossary.md deleted file mode 100644 index c9d00ad..0000000 --- a/getting-started/glossary.md +++ /dev/null @@ -1,48 +0,0 @@ -# GLOSSARY - -## API -Application Programming Interface. A software intermediary that allows two applications to talk to each other. - - -## API Endpoint -The place that APIs send requests to and where the resource resides. - -## API Gateway -An API management tool that sits between a client and a collection of backend services. - -## API Gateway Id - - -## API Key -A unique identifier used by CFT to authenticate a calling program, this is used for rate limiting. It is assigned to an individual project. - -## API Request -A call to a server using an API. - -## API Response -Response sent by the server according to the input header of the API request. - -## Client Id and Secret - -A public identifier for applications. Required to generate an authorization token to make API calls. - -## Cloud File Transfer \(CFT\) -A lightweight, fully managed, API-driven service that allows agencies or businesses to transfer files easily, securely and efficiently at scale. - -## JWT -JSON Web Token (JWT) is an open standard (RFC 7519) that defines a compact and self-contained way for securely transmitting information between parties as a JSON object. - -## OpenAPI Specifications -The OpenAPI Specification (OAS) defines a standard, language-agnostic interface to RESTful APIs which allows both humans and computers to discover and understand the capabilities of the service without access to source code, documentation, or through network traffic inspection. - -## Payload -The body of an API request or response message. - -## Project Id - -## REST API -A REST API is an API that conforms to the design principles of the REST, or representational state transfer architectural style. - -## Sandbox -CFT sandbox environment is a secure environment to try out CFT APIs. The sandbox supports file transfers in the internet zone between systems. - diff --git a/getting-started/images/CFT-for-backend-systems.png b/getting-started/images/CFT-for-backend-systems.png new file mode 100644 index 0000000..b31982b Binary files /dev/null and b/getting-started/images/CFT-for-backend-systems.png differ diff --git a/getting-started/images/Sandbox_API_usage.png b/getting-started/images/Sandbox_API_usage.png deleted file mode 100644 index ef3e487..0000000 Binary files a/getting-started/images/Sandbox_API_usage.png and /dev/null differ diff --git a/getting-started/images/Sandbox_Auth.png b/getting-started/images/Sandbox_Auth.png deleted file mode 100644 index 66845d8..0000000 Binary files a/getting-started/images/Sandbox_Auth.png and /dev/null differ diff --git a/getting-started/images/Sandbox_CreateTran1.png b/getting-started/images/Sandbox_CreateTran1.png deleted file mode 100644 index 6cc7d44..0000000 Binary files a/getting-started/images/Sandbox_CreateTran1.png and /dev/null differ diff --git a/getting-started/images/Sandbox_acktran.jpg b/getting-started/images/Sandbox_acktran.jpg deleted file mode 100644 index 2bf0f2e..0000000 Binary files a/getting-started/images/Sandbox_acktran.jpg and /dev/null differ diff --git a/getting-started/images/Sandbox_download.jpg b/getting-started/images/Sandbox_download.jpg deleted file mode 100644 index b475df3..0000000 Binary files a/getting-started/images/Sandbox_download.jpg and /dev/null differ diff --git a/getting-started/images/Sandbox_filescan.jpg b/getting-started/images/Sandbox_filescan.jpg deleted file mode 100644 index 2047042..0000000 Binary files a/getting-started/images/Sandbox_filescan.jpg and /dev/null differ diff --git a/getting-started/images/Sandbox_fileupload.jpg b/getting-started/images/Sandbox_fileupload.jpg deleted file mode 100644 index d19c345..0000000 Binary files a/getting-started/images/Sandbox_fileupload.jpg and /dev/null differ diff --git a/getting-started/images/Sandbox_transtatus.jpg b/getting-started/images/Sandbox_transtatus.jpg deleted file mode 100644 index a85f26c..0000000 Binary files a/getting-started/images/Sandbox_transtatus.jpg and /dev/null differ diff --git a/getting-started/images/how-it-works.png b/getting-started/images/how-it-works.png deleted file mode 100644 index b1a8db0..0000000 Binary files a/getting-started/images/how-it-works.png and /dev/null differ diff --git a/getting-started/sandbox-quick-start-guide.md b/getting-started/sandbox-quick-start-guide.md deleted file mode 100644 index fb612c4..0000000 --- a/getting-started/sandbox-quick-start-guide.md +++ /dev/null @@ -1,439 +0,0 @@ -# INTRODUCTION - -**Cloud File Transfer (CFT)** [sandbox][glossary.md] is a test environment that is almost identical to our production environment except that it supports only internet to internet transfers. - -In the following sections you will learn how to use APIs in the sandbox to send and receive files. \(Includes resource information on each of the API endpoints, request headers, response schema, sample request and response payloads!\) - -Try out our APIs and start transferring files in minutes! - - -If you haven't yet signed up, fill up the [onboarding form.](https://form.gov.sg/#!/60a4cca76179d60012cdacac/preview) - -We will send you an email with your API credentials and account information. - - -# Getting Started - -## Sandbox Credentials -Refer to your welcome email for the following information: - -- [API Key][glossary.md] -- [Client Id and Secret][glossary.md] -- [API Gateway Id][glossary.md] -- Sandbox (Internet).postman_environment.json* -- CFT API v1.postman_collection.json* -* Requires Postman application to be installed. - -## Setup Test Environment -We recommend Postman for its user-friendly, simple interface. It supports most HTTP methods and several status codes for you to verify your response. - -### 1. Install Postman Application -Download and install [Postman.][www.postman.com] - -### 2. Import CFT API v1 Collection and Sandbox Environment -- Click **Collections -> Import -> Folder -> \"CFT API v1.postman_collection.json\"** -- Click **Environment -> Import -> Folder -> \"Sandbox (Internet).postman_environment.json\"** -Refer Sandbox Credentials. - -## REST APIs -The REST APIs are implemented using HTTP Protocol. - -See image below to understand API usage during the file transfer process. - -![Display API](./images/Sandbox_API_usage.png) - -## Start File Transfers - -### 1. Authentication -Before you can start using APIs to send and receive files, you will need to authenticate yourself. You can do this by invoking the **(GET JWT(KeyCloak)) API** and providing your sandbox credentials. This API supports OAuth protocol.  - -![Display Step1](./images/Sandbox_Auth.png) - -You will receive an authorization token valid for 30 mins. - -This token is required to: - -- Upload files -- Scan and transfer files -- Download files - -#### 1.1 Resource Information -|Method |POST -|------------|--------------------------- -|URL |https://api-sandbox.gdscft.govtechstack.sg/sandbox/v1/cft/auth -|What it does|Provides a short-lived authorization token to call CFT APIs - -#### 1.2 Request -##### 1.2.1 Headers* -|Name |Type |Purpose -|------------ |---------|------------ -|x-api-key |String |API Key assigned to an individual project -|Authorization |String |Basic Auth of Client Id and Secret -|x-apigw-api-id |String |API Gateway Id** - -**\*Unless mentioned otherwise, all headers are required.** - -****API Gateway Id needs to be physically entered if not hardcoded by Postman.** - - -##### 1.2.2 Sample Request -You can direcly invoke the APIs in the collection or use cURL commands as shown below: - -``` -curl --location --request POST 'https://api-sandbox.gdscft.govtechstack.sg/sandbox/v1/cft/auth' \ ---header 'x-api-key: [API Key]' \ ---header 'x-apigw-api-id: [API Gateway Id]' \ ---header 'Authorization: Basic [Client Id and Secret]' -``` - -#### 1.3 Response -##### 1.3.1 JSON schema -|Name |Type -|------------ |--------- -|authorization_token |String -|expires_in |Integer -|token_type |String - - -##### 1.3.2 Sample Response Payload -|Code |Response -|-----------------|----------------------------- -|200 | -``` -{ - "authorization_token": “authorizationtoken”, - "expires_in": 1800, - "token_type": "Bearer" - } -``` - -### 2. Send Files -#### 2.1 Authenticate -Obtain authorization token. - -#### 2.2 Create Transaction -Use this API to receive a secure URL to upload your files. Provide the authorization token (obtained earlier), name of the files to be uploaded (required), and their md5Checksum (optional)*. - -You will receive a "transaction_id" and a secure URL valid for 30 minutes. - -*!>To get md5Checksum hash the file, use the following command: -openssl md5 -binary \[fileName\] | base64 - - -![Display Step2](./images/Sandbox_CreateTran1.png) - -##### 2.2.1 Resource Information -|Method |POST -|------------|---------------------------------------------------------------------- -|URL |https://api-sandbox.gdscft.govtechstack.sg/sandbox/v1/cft/transactions -|What it does|Creates a transaction and returns secured URLs to upload files - -##### 2.2.2 Request -###### 2.2.2.1 Headers -|Name |Type |Purpose -|------------ |---------|------------ -|x-api-key |String |API Key assigned to an individual project -|authorization_token |String |Authorization token -|x-apigw-api-id |String |API Gateway Id - -###### 2.2.2.2 JSON schema -|Name |Type |Purpose -|------------ |--------- |--------- -|fileDetails |JSON array |fileDetails JSON schema -|fileName |String |file names to be uploaded with extension -|md5Checksum |String |md5checksum of the file - -###### 2.2.2.3 Sample Request Payload -``` -curl --location --request POST 'https://api-sandbox.gdscft.govtechstack.sg/sandbox/v1/cft/transactions' \ ---header 'Authorization: [authorization_token]' \ ---header 'Content-Type: application/json' \ ---header 'x-api-key: [API Key]' \ ---header 'x-apigw-api-id: [API Gateway Id]' \ ---data-raw '{ - "fileDetails": [ - { - "fileName": "[fileName]", - "md5Checksum": "[md5Checksum]" - } - ] -}' -``` - -##### 2.2.3 Response -###### 2.2.3.1 JSON schema -|Name |Type -|------------ |--------- -|projectId |String -|transactionId |Integer -|filesCount |Integer -|uploadUrls |uploadUrls JSON schema - -###### 2.2.3.2 uploadUrls JSON schema -|Name |Type -|------------ |--------- -|fileName |String -|uploadUrl |String -|validFor |String - -###### 2.2.3.3 Sample Response Payload - -|Code |Response -|-----------------|----------------------------- -|200 | -``` -{ - "projectId": "projectId", - "transactionId": "transactionId", - "filesCount": 1, - "uploadUrls": [ - { - "fileName": "fileName", - "uploadUrl": "uploadUrl", - "validFor": "30 Minutes" - } - ] - } -``` - - -#### 2.3 Upload File -Upload your file to the URL obtained in the previous step. (Step 2.2) -``` -curl --location --request PUT '[uploadUrl]' \ ---header 'Content-MD5: [md5Checksum]' \ ---header 'Content-Type: text/plain' \ ---data-binary '/path/[fileName]' -``` -![Display Step3](./images/Sandbox_fileupload.jpg) - -#### 2.4. View Transaction Status -To know if the file has been successfully uploaded, invoke the **\(Transaction Status API\).** Provide your authorization_token in the request body. - -\(Important: If there is more than one file, all files need to be uploaded before you call the Transaction Status API.\) - -You will receive a status of the transaction including the uploaded files. - -![Display Step4](./images/Sandbox_transtatus.jpg) - -##### 2.4.1 Resource Information -|Method |GET -|------------|----------------------------------------- -|URL |https://api-sandbox.gdscft.govtechstack.sg/sandbox/v1/cft/transactions/{transactionid}/status -|What it does|Returns the status of all files uploaded in a transaction - -##### 2.4.2 Request -###### 2.4.2.1 Headers -|Name |Type |Purpose -|------------ |---------|------------ -|x-api-key |String |API Key assigned to an individual project -|authorization_token |String |Authorization token -|x-apigw-api-id |String |API Gateway Id - -###### 2.4.2.2 Sample Request Payload -``` -curl --location --request POST 'https://api-sandbox.gdscft.govtechstack.sg/sandbox/v1/cft/transactions/{{session_id}}/status' \ ---header 'x-api-key: [API Key]' \ ---header 'x-apigw-api-id: [API Gateway Id]' \ ---header 'Authorization: [authorization_token]' - -``` -##### 2.4.3 Response -###### 2.4.3.1 JSON schema -|Name |Type -|------------ |--------- -|projectId |String -|transactionId |String -|filesCount |Integer -|fileDetails |JSON array of fileDetails schema - -###### 2.4.3.2 fileDetails JSON schema -|Name |Type -|------------ |--------- -|fileName |String -|fileStatus |String -|transactionTimestamp |String -|fileTimestamp\* |String - -**\* fileTimestamp is optional. - -###### 2.4.3.3 Sample Response -|Code |Response -|-----------------|----------------------------- -|200 | -``` -{ -    "projectId": "abcd", -    "transactionid": "3cfcb009-954d-4cbc-b941-855f04e87db6", -    "filesCount": 2, -    "fileDetails": [ -        { -            "fileName": "test1.txt", -            "fileStatus": "FileDownloaded", -            "transactionTimestamp": "2021-02-02 10:45:02", -            "fileTimestamp": "2021-02-02 17:42:24" -        }, -        { -            "fileName": "test2.pdf", -            "fileStatus": "FileDownloaded", -            "transactionTimestamp": "2021-02-02 10:45:02", -            "fileTimestamp": "2021-02-02 17:42:24" -        } -    ] -} -``` -|4xx |{"message":"error message"} - -#### 2.5 Commit Transaction -After checking that the file has uploaded successfully, use the **\(Scan Transaction API\)** to commit the file for scan and transfer. - -![Display Step5](./images/Sandbox_filescan.jpg) - -##### 2.5.1 Resource Information -|Method |POST -|------------|-------------------------------------------------------------------- -|URL |https://api-sandbox.gdscft.govtechstack.sg/sandbox/v1/cft/transactions/{{sessionid}}/scan -|What it does|Commits the transaction for scan and transfer - -##### 2.5.2 Request -###### 2.5.2.1 Headers -|Name |Type |Purpose -|------------ |---------|------------ -|x-api-key |String |API Key assigned to an individual project -|authorization_token |String |Authorization token -|x-apigw-api-id |String |API Gateway Id - - -##### 2.5.3 Response -###### 2.5.3.1 JSON schema -|Name |Type -|------------ |--------- -|projectId |String -|transactionId |String -|filesCount |Integer -|fileDetails |JSON array of fileDetails schema - -###### 2.5.3.2 fileDetails JSON schema -|Name |Type -|------------ |--------- -|fileName |String -|fileStatus |String - -###### 2.5.3.3 Sample Response -|Code |Response -|-----------------|----------------------------- -|200 | -``` -{ -    "projectId": "abcd", -    "transactionid": "47e1da94-6c26-432f-9585-9f8927a71892", -    "filesCount": 2, -    "fileDetails": [ -        { -            "fileName": "test1.txt", -            "fileStatus": "FileSubmittedForScan" -        }, -        { -            "fileName": "test2.pdf", -            "fileStatus": "FileSubmittedForScan" -        } -    ] -} -``` -|4xx | - - -### 3. Notification -After the scan and transfer is complete, files will be available for download. CFT system will send a notification to the receiver via Webhook.* - -*(Webhook needs to be configured by receiver) - - - -### 4. Receive Files - -#### 4.1 Authentication -Obtain authorization token. - -#### 4.2 Download File -You need to obtain secure URLs to download the file, use the **Download Transaction API.** - -![Display Step5](./images/Sandbox_download.jpg) - -##### 4.2.1 Resource Information -|Method |GET -|------------|------------------------------------------ -|URL |https://api-sandbox.gdscft.govtechstack.sg/sandbox/v1/cft/transactions/{transactionid}/download -|What it does|Provides secured URLs to download files in a transaction - -##### 4.2.2 Request -###### 4.2.2.1 Headers -|Name |Type |Purpose -|------------ |---------|------------ -|x-api-key |String |API Key assigned to an individual project -|authorization_token |String |Authorization token -|x-apigw-api-id |String |API Gateway Id - -##### 4.2.3 Response -###### 4.2.3.1 JSON schema -|Name |Type -|------------ |--------- -|projectId |String -|transactionId |String -|filesCount |Integer -|downloadUrls |JSON array of downloadUrls schema - -###### 4.2.3.2 downloadUrls JSON schema -|Name |Type -|------------ |--------- -|fileName |String -|fileStatus |String -|downloadUrl\* |String -|validFor\* |String - -**\* Only available when file is copied to clean bucket** - -###### 4.2.3.3 Sample Response Payload -|Code |Response -|-----------------|----------------------------- -|200 | "projectId": "gt-enp", - "transactionId": "2a94862a-2a5e-4e85-bf38-98a587c08da1", - "filesCount": 1, - "downloadUrls": [ - { - "fileName": "abcd.txt", - "fileStatus": "FileCopiedToCleanBucket", - "downloadUrl": "https://gt-enp-clean-sandbox-internet.s3-sandbox.gdscft.govtechstack.sg/2a94862a-2a5e-4e85-bf38-98a587c08da1/abcd.txt?AWSAccessKeyId=ASIAUDIC7Y3DCGCP26R7&Expires=1629276790&Signature=zC7ncFeVSZ4iFHOuF5K%2FQhSpc%2Bw%3D&x-amz-security-token=IQoJb3JpZ2luX2VjEGEaDmFwLXNvdXRoZWFzdC0xIkcwRQIhAJGXKuck2d343bnUF8MyGS0jPNywYSCzh8sK%2B8bSimq3AiAe6fyFwJ22ewxKJSmR4xbdSN1nRUL0wfrvlA8%2BUVs%2FFCq2AgiK%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F8BEAEaDDI4MTg2MzUwNTYwNiIM5CJHSuHnYhjVFNBVKooCvmokdCGCJJHcy5q7TYt8OPv%2FHD642SvzHSemeW7hV2%2F643sJniww4EcWAGInH9Udtxm3q9Ch7J8aEjvqL7jcFXNLePFoRaOa5nh6AeCo2tSQhPgXsKsvnAJesXVH8TmxQlv41YOo7%2BO%2BEgWTDbrCuBIgDxiCmCQHXluPy9MD2w9k3wTLlY%2FYPOXcuttVf88kO83zZ3alQD63jmlDMdbe63eW0n0bZwVUWiNwEr12N%2Bp6PoDWs1%2F%2F5k%2Bmt7O2LYCAjQxIYjggh8iIN4QRhjfA6oBZGQD99Xy%2FhmOFXyvtFLQDC%2BSXmvU9BNoFwLZClmMEqxyUOdXxvZbQT8QFdhxdzRZwWRMo%2FUysg90w7YbziAY6mgHOYRAbpM3vPjXcqDPi9%2BsQaP6YUm%2FOeanciG6hj3PahNL8cbML48MVAdr2jaVEeX4s9IffgY55jIxrz9vLqudBWrFUaVAntOh49j%2FOaPr%2Fwss8etDrekssJqp3MBp7VAJ01UKheq3dGbgNlbevMxuHpU9sIZCvaqHV0yQ06YBIZoHOpCowZaSmCL30Fo4hHYMjlxf5wJjULxxd", - "validFor": "30 Minutes" - } - ] -} -|4xx | - - -#### 4.3 Send Acknowledgement -Use the acknowledgment API to notify CFT about the files downloaded. This is optional. - -![Display Step5](./images/Sandbox_acktran -'.jpg) - -##### 4.3.1 Resource Information -|Method |PUT -|------------|------------------------- -|URL |https://api-sandbox.gdscft.govtechstack.sg/sandbox/v1/cft/transactions/{transactionid}/ack -|What it does|Notifies Sender about the files downloaded in a transaction - -##### 4.3.2 Request -###### 4.3.2.1 Headers -Refer 2.2.1 \(of Sender\) - -##### 4.3.3 Response -###### 4.3.3.1 Sample Response -|Code |Response -|-----------------|----------------------------- -|200 | -|4xx | - - -## Support -Support is delivered over telegram channel and during office hours. \ No newline at end of file