cloudmason 1.0.3 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +17 -8
- package/commands/starter.js +3 -1
- package/main.js +10 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -9,6 +9,11 @@ Can be used as a command line tool, or in a CI/CD pipeline.
|
|
|
9
9
|
- [Important Notes](##important)
|
|
10
10
|
- [Commands](##commands)
|
|
11
11
|
|
|
12
|
+
## Installation
|
|
13
|
+
|
|
14
|
+
Be sure to use the -g flag to install globally.
|
|
15
|
+
|
|
16
|
+
``npm install -g cloudmason``
|
|
12
17
|
|
|
13
18
|
|
|
14
19
|
## Quick Start
|
|
@@ -18,12 +23,15 @@ Get an Ec2 nodejs app up and running in 4 commands.
|
|
|
18
23
|
1. **Prereqs**
|
|
19
24
|
1. Open an AWS account
|
|
20
25
|
2. Download and set up the AWS CLI (or just set your AWS credentials with enviroment variables)
|
|
21
|
-
3.
|
|
22
|
-
4.
|
|
23
|
-
|
|
26
|
+
3. Ensure you have a domain to deploy apps to
|
|
27
|
+
4. Make sure you have nodejs version 18+ installed
|
|
28
|
+
5. Install the cloudmason CLI
|
|
29
|
+
- `npm install -g cloudmason`
|
|
30
|
+
6. Run the following command to set up your org:
|
|
31
|
+
- `mason init-org -name MyOrg -region us-east-1`
|
|
24
32
|
2. **Set up a Local App Template**
|
|
25
33
|
1. Get a sample nodejs app template:
|
|
26
|
-
|
|
34
|
+
- `mason starter -p ./myDesktop/MyFirstApp -type asg -l node`
|
|
27
35
|
3. **Add an App**
|
|
28
36
|
```
|
|
29
37
|
mason new-app -name MyFirstApp -type asg
|
|
@@ -31,12 +39,12 @@ mason new-instance -app MyFirstApp -domain myfirstapp.com -region us-east-2 -adm
|
|
|
31
39
|
mason update-app -app MyFirstApp -v 1.0 -path ./myDesktop/HelloWorld
|
|
32
40
|
mason list-apps
|
|
33
41
|
```
|
|
34
|
-
|
|
42
|
+
1. **Launch it**
|
|
35
43
|
```
|
|
36
44
|
mason launch -app MyFirstApp -v 1.0 -domain myfirstapp.com
|
|
37
45
|
mason inspect -app MyFirstApp -domain myfirstapp.com -boot
|
|
38
46
|
```
|
|
39
|
-
|
|
47
|
+
1. **Review It**
|
|
40
48
|
1. Visit the domain you specified. You'll see a login page.
|
|
41
49
|
2. Check the email address you specified for a temp password. Use it to log in.
|
|
42
50
|
3. After logging in, you'll see a "Hello World" page.
|
|
@@ -44,8 +52,9 @@ mason inspect -app MyFirstApp -domain myfirstapp.com -boot
|
|
|
44
52
|
#### All Together
|
|
45
53
|
|
|
46
54
|
```
|
|
47
|
-
|
|
48
|
-
mason
|
|
55
|
+
npm install -g cloudmason
|
|
56
|
+
mason init-org -name MyOrg -region us-east-1
|
|
57
|
+
mason starter -p ./myDesktop/MyFirstApp -type asg -l node
|
|
49
58
|
mason new-app -name MyFirstApp -type asg
|
|
50
59
|
mason new-instance -app MyFirstApp -domain myfirstapp.com -region us-east-2 -admin me@gmail.com
|
|
51
60
|
mason update-app -app MyFirstApp -v 1.0 -path ./myDesktop/MyFirstApp
|
package/commands/starter.js
CHANGED
|
@@ -9,7 +9,9 @@ exports.main = function(args){
|
|
|
9
9
|
|
|
10
10
|
// Resolve Output Path
|
|
11
11
|
const outputPath = path.resolve(args.p);
|
|
12
|
-
const
|
|
12
|
+
const starterRelPath = `starters/${args.type}${args.l ? `_${args.l}` : ''}`;
|
|
13
|
+
const starterPath = path.join(__dirname, starterRelPath);
|
|
14
|
+
|
|
13
15
|
|
|
14
16
|
// Copy Directory
|
|
15
17
|
console.log(`Creating dir ${outputPath}`);
|
package/main.js
CHANGED
|
@@ -128,6 +128,8 @@ const Commands = {
|
|
|
128
128
|
}
|
|
129
129
|
|
|
130
130
|
async function main(){
|
|
131
|
+
const nodeVersion = checkNodeVersion();
|
|
132
|
+
|
|
131
133
|
const orgExists = await readOrgInfo();
|
|
132
134
|
if (orgExists){
|
|
133
135
|
console.log(`>>>> ${process.env.orgName} <<<<`);
|
|
@@ -186,6 +188,14 @@ async function main(){
|
|
|
186
188
|
/////////////////////////////////
|
|
187
189
|
////////////////////////////////
|
|
188
190
|
|
|
191
|
+
function checkNodeVersion() {
|
|
192
|
+
const requiredVersion = 16;
|
|
193
|
+
const currentVersion = process.version.split('.')[0].replace('v', '');
|
|
194
|
+
|
|
195
|
+
if (parseInt(currentVersion) < requiredVersion) {
|
|
196
|
+
throw new Error(`Node.js version is less than ${requiredVersion}. Current version: ${process.version}`);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
189
199
|
|
|
190
200
|
async function readOrgInfo(){
|
|
191
201
|
const orgPath = path.resolve(__dirname,'org.txt');
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"cloudmason","version":"1.0.
|
|
1
|
+
{"name":"cloudmason","version":"1.0.4","description":"","main":"main.js","scripts":{"build":"node build.js"},"bin":{"mason":"./main.js"},"repository":{"type":"git","url":"https://github.com/kai-harvey/secure-saas.git"},"author":"Kai Harvey","license":"ISC","dependencies":{"@aws-sdk/client-acm":"^3.418.0","@aws-sdk/client-auto-scaling":"^3.470.0","@aws-sdk/client-cloudformation":"^3.418.0","@aws-sdk/client-ec2":"^3.416.0","@aws-sdk/client-iam":"^3.418.0","@aws-sdk/client-route-53":"^3.425.0","@aws-sdk/client-s3":"^3.418.0","@aws-sdk/client-ssm":"^3.421.0","adm-zip":"^0.5.10"}}
|