Skip to content
This repository was archived by the owner on Nov 3, 2025. It is now read-only.

Commit c10357f

Browse files
authored
Merge pull request #151 from aws-samples/development
v1.4.0 release
2 parents e45c5fe + aad601e commit c10357f

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+1711
-591
lines changed
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
---
2+
name: Bug report
3+
about: Create a report to help us improve
4+
title: ''
5+
labels: bug
6+
assignees: ''
7+
8+
---
9+
10+
**Describe the bug**
11+
A clear and concise description of what the bug is.
12+
13+
**To Reproduce**
14+
Steps to reproduce the behavior.
15+
16+
**Expected behavior**
17+
A clear and concise description of what you expected to happen.
18+
19+
**Please complete the following information about the solution:**
20+
- [ ] Version: [e.g. v1.0.4]
21+
22+
To get the version of the solution, you can look at the description of the created CloudFormation stack. If the description does not contain the version information, you can look at the mappings section of the template:
23+
24+
```yaml
25+
Mappings:
26+
SourceCode:
27+
General:
28+
S3Bucket: "solutions"
29+
KeyPrefix: "simple-file-manager-for-amazon-efs/v1.0.4"
30+
```
31+
32+
- [ ] Region: [e.g. us-east-1]
33+
- [ ] Was the solution modified from the version published on this repository?
34+
- [ ] If the answer to the previous question was yes, are the changes available on GitHub?
35+
- [ ] Have you checked your [service quotas](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html) for the sevices this solution uses?
36+
- [ ] Were there any errors in the CloudWatch Logs?
37+
38+
**Screenshots**
39+
If applicable, add screenshots to help explain your problem (please **DO NOT include sensitive information**).
40+
41+
**Additional context**
42+
Add any other context about the problem here.
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
---
2+
name: Feature request
3+
about: Suggest an idea for this solution
4+
title: ''
5+
labels: enhancement
6+
assignees: ''
7+
8+
---
9+
10+
**Is your feature request related to a problem? Please describe.**
11+
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12+
13+
**Describe the feature you'd like**
14+
A clear and concise description of what you want to happen.
15+
16+
**Additional context**
17+
Add any other context or screenshots about the feature request here.

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
*Issue #, if available:*
2+
3+
*Description of changes:*
4+
5+
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.
Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
name: scheduled-workflow
2+
3+
on:
4+
workflow_dispatch:
5+
6+
jobs:
7+
build-us-west-2:
8+
runs-on: ubuntu-latest
9+
steps:
10+
- name: Check out development branch
11+
uses: actions/[email protected]
12+
with:
13+
ref: development
14+
15+
- name: Initialize AWS credentials
16+
uses: aws-actions/configure-aws-credentials@v1
17+
with:
18+
aws-access-key-id: ${{ secrets.BUILD_AWS_ACCESS_KEY_ID }}
19+
aws-secret-access-key: ${{ secrets.BUILD_AWS_SECRET_ACCESS_KEY }}
20+
aws-region: us-west-2
21+
22+
- name: Generate short sha
23+
run: |
24+
echo "SHORT_SHA=`git rev-parse --short HEAD`" >> $GITHUB_ENV
25+
- name: Run build script
26+
run: |
27+
cd deployment
28+
SFM_STACK_NAME=sfm-dev
29+
REGION=us-west-2
30+
VERSION=$SHORT_SHA
31+
DIST_OUTPUT_BUCKET=sfm-dev
32+
TEMPLATE_OUTPUT_BUCKET=sfm-dev-us-west-2
33+
./build-s3-dist.sh --template-bucket $TEMPLATE_OUTPUT_BUCKET --code-bucket $DIST_OUTPUT_BUCKET --version $VERSION --region $REGION
34+
aws cloudformation deploy --stack-name $SFM_STACK_NAME --region $REGION --template-file global-s3-assets/simple-file-manager-for-amazon-efs.template --s3-bucket $DIST_OUTPUT_BUCKET-$REGION --s3-prefix efs_file_manager/$VERSION --parameter-overrides AdminEmail=${{ secrets.TEST_ADMIN_EMAIL }} --capabilities CAPABILITY_IAM CAPABILITY_NAMED_IAM CAPABILITY_AUTO_EXPAND --force-upload
35+
- name: Build Failed
36+
if: ${{ failure() }}
37+
uses: nashmaniac/[email protected]
38+
with:
39+
title: Nightly build failed
40+
token: ${{secrets.GITHUB_TOKEN}}
41+
assignees: brandold
42+
labels: bug
43+
body: Nightly build failed for commit ${{github.sha}}
44+
45+
46+
test-us-west-2:
47+
needs: build-us-west-2
48+
runs-on: ubuntu-latest
49+
env:
50+
SFM_REGION: 'us-west-2'
51+
SFM_STACK_NAME: sfm-dev
52+
steps:
53+
- name: Check out development branch
54+
uses: actions/[email protected]
55+
with:
56+
ref: development
57+
- name: Initialize build AWS credentials
58+
uses: aws-actions/configure-aws-credentials@v1
59+
with:
60+
aws-access-key-id: ${{ secrets.BUILD_AWS_ACCESS_KEY_ID }}
61+
aws-secret-access-key: ${{ secrets.BUILD_AWS_SECRET_ACCESS_KEY }}
62+
aws-region: us-west-2
63+
- name: Generate short sha
64+
run: |
65+
echo "SHORT_SHA=`git rev-parse --short HEAD`" >> $GITHUB_ENV
66+
- name: Run cfn_nag
67+
uses: stelligent/cfn_nag@master
68+
continue-on-error: true
69+
with:
70+
input_path: deployment
71+
- name: Setup Chromedriver
72+
uses: nanasess/setup-chromedriver@master
73+
- name: Get user pool id
74+
run: |
75+
echo "USER_POOL_ID=`aws cloudformation describe-stacks --query 'Stacks[?starts_with(StackName, \`sfm-dev-EFSFileAuthentication\`)].Outputs[1].OutputValue' --output text`" >> $GITHUB_ENV
76+
- name: Reset SFM user password
77+
run: |
78+
aws cognito-idp admin-set-user-password --user-pool-id $USER_POOL_ID --username ${{ secrets.TEST_ADMIN_EMAIL }} --password ${{ secrets.TEST_ADMIN_PASSWORD }} --permanent
79+
- name: Get SFM endpoint
80+
run: |
81+
echo "SFM_ENDPOINT=`aws cloudformation describe-stacks --query 'Stacks[?starts_with(StackName, \`sfm-dev-EFSFileWebApplication\`)].Outputs[0].OutputValue' --output text`" >> $GITHUB_ENV
82+
- name: Set admin creds
83+
run: |
84+
echo SFM_USERNAME=${{ secrets.TEST_ADMIN_EMAIL }} >> $GITHUB_ENV
85+
echo SFM_PASSWORD=${{ secrets.TEST_ADMIN_PASSWORD }} >> $GITHUB_ENV
86+
- name: Set media path and file name
87+
run: |
88+
echo TEST_MEDIA_PATH=$GITHUB_WORKSPACE/test/e2e/ >> $GITHUB_ENV
89+
echo TEST_FILE_NAME=run_e2e.sh >> $GITHUB_ENV
90+
- name: Set filesystem id
91+
run: |
92+
echo FILESYSTEM_ID=${{ secrets.TEST_FILESYSEM_ID }} >> $GITHUB_ENV
93+
- name: Run E2E tests
94+
run: |
95+
cd $GITHUB_WORKSPACE
96+
cd test/e2e
97+
./run_e2e.sh
98+
- name: Test Failed
99+
if: ${{ failure() }}
100+
uses: nashmaniac/[email protected]
101+
with:
102+
title: Nightly test for failed
103+
token: ${{secrets.GITHUB_TOKEN}}
104+
assignees: brandold
105+
labels: bug
106+
body: Nightly test failed for commit ${{github.sha}}
107+
- name: Delete stack
108+
run: |
109+
aws cloudformation delete-stack --stack-name $SFM_STACK_NAME

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
**/tmp
88
**/out-tsc
99
**/.chalice/deployments
10+
**/source/helper/webapp-manifest.json
1011

1112
# dependencies
1213
**/node_modules

.viperlightignore

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,14 @@
11
^dist/
22
CODE_OF_CONDUCT.md:4
33
CONTRIBUTING.md:50
4+
.github/workflows/nightly-workflow.yml:19
5+
.github/workflows/nightly-workflow.yml:18
6+
deployment/.idea/workspace.xml:73
7+
docs/assets/images/sfm_logo.svg:3
8+
source/api/.idea/workspace.xml:109
9+
deployment/efs-file-manager-auth.yaml:158
10+
deployment/efs-file-manager-auth.yaml:171
11+
deployment/simple-file-manager-for-amazon-efs.yaml:74
12+
deployment/simple-file-manager-for-amazon-efs.yaml:59
13+
deployment/simple-file-manager-for-amazon-efs.yaml:84
14+
deployment/simple-file-manager-for-amazon-efs.yaml:69

CHANGELOG.md

Lines changed: 71 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,77 @@ All notable changes to this project will be documented in this file.
44
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
55
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
66

7-
## [1.0.0] - 2019-07-27
7+
## [1.4.0] - 2021-07-08
8+
- General bug fixes
9+
- Code refactoring to support pylint
10+
- cfn-lint / bandit code cleanup
11+
- Misc documentation
12+
13+
## [1.3.0] - 2021-06-01
14+
## New:
15+
- Add delete functionality for SFM created resources #115
16+
17+
## Security:
18+
- IAM permissions scoped down #114
19+
20+
## Documentation:
21+
Diagrams from previous update
22+
- Detailed architecture diagram #1
23+
- Simplified architecture diagram #1
24+
- Security sequence diagram #1
25+
26+
27+
## [1.2.0] - 2021-05-26
28+
### New:
29+
- Fix rollback issue when file manager lambda is not created successfully #67
30+
- Allow upload modal to be closed if upload fails #79
31+
- Check if file exists before attempting upload #77
32+
33+
### Changes:
34+
- Generate pop up for deleting files instead of an alert #66
35+
- Added Nightly Tests
36+
37+
### Security:
38+
- IAM permissions scoped down for CloudFormation templates. #61
39+
- CFN Nag changes for Lambdas deployed into a VPC #63
40+
- Changes so uses a minimum of CloudFront TLS 1.2 #62
41+
- EFS-File-Manager.yaml IAM update to use iam:passedtoservice condition key #81
42+
43+
### Bug Fixes:
44+
- FS lambda fails to launch due to SG constraint #75
45+
46+
### Documentation:
47+
Diagrams from previous update
48+
- Detailed architecture diagram #1
49+
- Simplified architecture diagram #1
50+
- Security sequence diagram #1
51+
52+
53+
## [1.1.0] - 2021-04-26
54+
### New:
55+
- File manager creation now accepts a custom UID, GID, and Path #22
56+
- File manager lambda automatically attaches to all available mount targets #9
57+
- Added the filesystem name to the filesystems table #41
58+
59+
### Changes:
60+
- Render a message saying no filesystems found when there are no EFS filesystems in the account instead of an empty table #46
61+
- Added a creating state to indicate that the file manager lambda is still being created #42
62+
- User agent string is being sent to identify the application #52
63+
- /download and /upload moved underneath the /objects path #45
64+
65+
### Security:
66+
N/A
67+
68+
### Bug Fixes:
69+
- Removed the sign up option on login page which was producing an error #44
70+
71+
### Documentation:
72+
- Detailed architecture diagram #1
73+
- Simplified architecture diagram #1
74+
- Security sequence diagram #1
75+
76+
77+
## [1.0.0] - 2021-04-09
878
### Added
979
- example-function-js sample microservice
1080
- added unit tests for example-function-js

CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ reported the issue. Please try to include as much information as you can. Detail
2323
## Contributing via Pull Requests
2424
Contributions via pull requests are much appreciated. Before sending us a pull request, please ensure that:
2525

26-
1. You are working against the latest source on the *master* branch.
26+
1. You are working against the latest source on the *development* branch.
2727
2. You check existing open, and recently merged, pull requests to make sure someone else hasn't addressed the problem already.
2828
3. You open an issue to discuss any significant work - we would hate for your time to be wasted.
2929

NOTICE.txt

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
EFS File Manager
2-
Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
1+
Simple File Manager for Amazon EFS
2+
3+
Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
34
Licensed under the Apache License Version 2.0 (the "License"). You may not use this file except
45
in compliance with the License. A copy of the License is located at http://www.apache.org/licenses/
56
or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS,
@@ -12,3 +13,18 @@ THIRD PARTY COMPONENTS
1213
This software includes third party software subject to the following copyrights:
1314

1415
AWS SDK under the Apache License Version 2.0
16+
Pytest under the MIT License (MIT)
17+
Selenium under the Apache License Version 2.0
18+
Boto3 under the Apache License Version 2.0
19+
Pyyaml under the MIT License (MIT)
20+
Requests_toolbelt under the Apache License Version 2.0
21+
Aws-amplify under the Apache License Version 2.0
22+
Aws-amplify-vue under the Apache License Version 2.0
23+
Bootstrap under the MIT License (MIT)
24+
Bootstrap-vue under the MIT License (MIT)
25+
Core-js under the MIT License (MIT)
26+
Vue under the MIT License (MIT)
27+
vue-router under the MIT License (MIT)
28+
vue-stepper-component under the MIT License (MIT)
29+
vue2-dropzone under the MIT License (MIT)
30+
webpack under the MIT License (MIT)

README.md

Lines changed: 50 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,12 @@ Simple File Manager provides access to Amazon EFS through a RESTful API and resp
77

88
You can deploy the open source solution by clicking one of the one-click deployment links in the install section below.
99

10-
***Note: This project is in an early beta stage. Please report bugs if you find them.***
11-
1210
# Install
1311

1412
Region| Launch
1513
------|-----
16-
US East (N. Virginia) | [![Launch in us-east-1](docs/assets/images/launch-stack.png)](https://console.aws.amazon.com/cloudformation/home?region=us-east-1#/stacks/new?stackName=sfm&templateURL=https://rodeolabz-us-east-1.s3.amazonaws.com/efs_file_manager/v1.1.0-beta/efs-file-manager.template)
17-
US West (Oregon) | [![Launch in us-west-2](docs/assets/images/launch-stack.png)](https://console.aws.amazon.com/cloudformation/home?region=us-west-2#/stacks/new?stackName=sfm&templateURL=https://rodeolabz-us-west-2.s3.us-west-2.amazonaws.com/efs_file_manager/v1.1.0-beta/efs-file-manager.template)
14+
US East (N. Virginia) | [![Launch in us-east-1](docs/assets/images/launch-stack.png)](https://console.aws.amazon.com/cloudformation/home?region=us-east-1#/stacks/new?stackName=sfm&templateURL=https://rodeolabz-us-east-1.s3.us-east-1.amazonaws.com/simple-file-manager-for-amazon-efs/v1.4.0/simple-file-manager-for-amazon-efs.template)
15+
US West (Oregon) | [![Launch in us-west-2](docs/assets/images/launch-stack.png)](https://console.aws.amazon.com/cloudformation/home?region=us-west-2#/stacks/new?stackName=sfm&templateURL=https://rodeolabz-us-west-2.s3.us-west-2.amazonaws.com/simple-file-manager-for-amazon-efs/v1.4.0/simple-file-manager-for-amazon-efs.template)
1816

1917

2018
# Getting Started
@@ -61,10 +59,57 @@ The cost to deploy and use the solution is minimal due to its serverless archite
6159

6260
___
6361

64-
Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
62+
63+
64+
65+
## Building distributable for customization
66+
67+
<a name="prerequisites"></a>
68+
## Prerequisites
69+
[//]: # (Add any prerequisites for customization steps. e.g. Prerequisite: Node.js>10)
70+
71+
* Install/update to Python 3.x
72+
* Install/update npm, this is needed to build and install the Vue.JS Web interface.
73+
* Install the AWS Command Line Interface (CLI)
74+
* Create an S3 bucket to store your CloudFormation template and resources with the instructions listed below.
75+
76+
## Running unit tests for customization
77+
* Clone the repository, then make the desired code changes
78+
* Next, run unit tests to make sure added customization passes the tests
79+
```
80+
cd ./deployment
81+
chmod +x ./run-unit-tests.sh
82+
./run-unit-tests.sh
83+
```
84+
85+
* Configure the bucket name of your target Amazon S3 distribution bucket
86+
87+
_Note:_ You would have to create an S3 bucket with the prefix 'my-bucket-name-<aws_region>'; aws_region is where you are testing the customized solution. Also, the assets in bucket should be publicly accessible.
88+
89+
* Now build the distributable:
90+
For example if you want to deploy in us-east-1 make sure you have a bucket that is named BUCKET_BASE_NAME-region where region is us-east-1 or which ever region you are wanting to deploy your deployment assets to. Version number can be changed to what ever you want, I put 1.0.0 as a placeholder.
91+
92+
This script will use the default AWS profile in your AWS CLI to upload assets to the bucket you provide.
93+
_Note:_ you must have the AWS Command Line Interface installed.
94+
```
95+
chmod +x ./build-s3-dist.sh \n
96+
./build-s3-dist.sh --template-bucket BUCKET_BASE_NAME-us-east-1 --code-bucket BUCKET_BASE_NAME --version 1.0.0 --region us-east-1 \n
97+
```
98+
99+
* Get the link of the solution template uploaded to your Amazon S3 bucket.
100+
The main template is called efs-file-manager.template
101+
102+
* Deploy the solution to your account by launching a new AWS CloudFormation stack using the link of the solution template in Amazon S3.
103+
104+
105+
106+
***
107+
108+
Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
65109

66110
Licensed under the Apache License Version 2.0 (the "License"). You may not use this file except in compliance with the License. A copy of the License is located at
67111

68112
http://www.apache.org/licenses/
69113

70114
or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions and limitations under the License.
115+

0 commit comments

Comments
 (0)