commit 31d28a5f972861597c4af15c51346c25c1b64f66 Author: Peter Howell Date: Thu Aug 28 05:44:55 2025 +0000 initial diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..8afbf57 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,37 @@ +# Repository Guidelines + +## Project Structure & Module Organization +- Root: static demos and data. + - `index.php`: FlowGrid (Vue 2) POC; parses inline DSL and renders lanes/steps. + - `ex4.html`: Cytoscape-based AWS VPC diagrams that fetch `graph.json`. + - `graph.json`: Example cloud inventory used by `ex3.html`/`ex4.html`. +- Add new demos as `exN.html` near existing files; keep shared data in JSON. + +## Build, Test, and Development Commands +- View live site at https://phowell.org/flow/index.php (or other filename) + - Working php server +- Basic JS/HTML sanity (manual): open in Chrome/Firefox and watch the console for errors; ensure `graph.json` loads without CORS issues. + +## Coding Style & Naming Conventions +- Indentation: 2 spaces for HTML/CSS/JS. +- JavaScript: camelCase variables/functions; semicolons; small, pure helpers. +- CSS: use CSS custom properties (`--kebab-case`) and utility-like classes. +- HTML: double-quoted attributes; lightweight, semantic elements. +- File naming: demos `ex.html`; data `*.json`; avoid frameworks/build steps. + +## Testing Guidelines +- No formal test runner configured. Validate by: + - Loading each page via `php -S` and exercising UI (toggles, search, layout buttons). + - For `graph.json` changes, verify nodes/edges render and controls respond. + - Optional lint: `php -l index.php` (syntax check) and run an HTML/JS linter locally if available. + +## Commit & Pull Request Guidelines +- Commits: imperative, scoped summaries (e.g., `feat: add RDS labels`, `fix: guard null css vars`). +- PRs: include a concise description, screenshots/GIFs of the UI, and reference issues. +- Keep diffs minimal; explain data/schema changes to `graph.json` and their UI impact. + +## Security & Configuration Tips +- Serve over `http://` locally (not `file://`) so `fetch('graph.json')` works. +- Do not commit credentials or sensitive infrastructure details in `graph.json`. +- External CDNs are used (Vue, Cytoscape, ELK); vendor locally only if required. + diff --git a/ex3.html b/ex3.html new file mode 100644 index 0000000..8b2f49c --- /dev/null +++ b/ex3.html @@ -0,0 +1,458 @@ + + + + + + AWS VPC Diagram (Cytoscape + ELK) + + + + + + + + + + + +
+

AWS VPC (example)

+ + + + + + + + + +
+ VPC + Subnet + ALB/NLB + EC2 + RDS + SG +
+
+ +
+
+ +
+ + + + diff --git a/ex4.html b/ex4.html new file mode 100644 index 0000000..318ea9e --- /dev/null +++ b/ex4.html @@ -0,0 +1,375 @@ + + + + + + AWS VPC Diagram (Cytoscape + ELK) + + + + + + + + + + + + + +
+

AWS VPC (example)

+ + + + + + + + + + +
+ VPC + Subnet + ALB/NLB + EC2 + RDS + SG +
+
+ +
+
+ +
+ + + + diff --git a/graph.json b/graph.json new file mode 100644 index 0000000..bd99770 --- /dev/null +++ b/graph.json @@ -0,0 +1,935 @@ +{ + "regions": { + "us-west-1": { + "vpcs": [ + { + "id": "vpc-87832de2", + "cidr": "10.4.0.0/16", + "name": "vault.vpc.01" + }, + { + "id": "vpc-c84eabad", + "cidr": "172.31.0.0/16", + "name": "vpc-c84eabad" + }, + { + "id": "vpc-331ad056", + "cidr": "10.3.0.0/16", + "name": "efw.vpc.02" + }, + { + "id": "vpc-afe722ca", + "cidr": "10.2.0.0/16", + "name": "efw.vpc.01" + }, + { + "id": "vpc-03f799f47b766798c", + "cidr": "10.10.0.0/16", + "name": "ALB-VPC" + } + ], + "subnets": [ + { + "id": "subnet-260ee27f", + "vpc": "vpc-331ad056", + "cidr": "10.3.0.0/24", + "az": "us-west-1b", + "public": false + }, + { + "id": "subnet-f73afeae", + "vpc": "vpc-331ad056", + "cidr": "10.3.1.0/24", + "az": "us-west-1b", + "public": false + }, + { + "id": "subnet-ebc4188e", + "vpc": "vpc-afe722ca", + "cidr": "10.2.1.0/24", + "az": "us-west-1c", + "public": false + }, + { + "id": "subnet-005bfd58e719e031f", + "vpc": "vpc-87832de2", + "cidr": "10.4.11.0/24", + "az": "us-west-1c", + "public": false + }, + { + "id": "subnet-035f81142068bf961", + "vpc": "vpc-03f799f47b766798c", + "cidr": "10.10.2.0/24", + "az": "us-west-1b", + "public": false + }, + { + "id": "subnet-d137fd88", + "vpc": "vpc-87832de2", + "cidr": "10.4.0.0/24", + "az": "us-west-1b", + "public": false + }, + { + "id": "subnet-e98e088c", + "vpc": "vpc-331ad056", + "cidr": "10.3.2.0/24", + "az": "us-west-1c", + "public": false + }, + { + "id": "subnet-08e40dcdc103438b8", + "vpc": "vpc-87832de2", + "cidr": "10.4.2.0/24", + "az": "us-west-1c", + "public": false + }, + { + "id": "subnet-0cb2aa7457413f5fe", + "vpc": "vpc-03f799f47b766798c", + "cidr": "10.10.3.0/24", + "az": "us-west-1c", + "public": true + }, + { + "id": "subnet-247a9341", + "vpc": "vpc-c84eabad", + "cidr": "172.31.16.0/20", + "az": "us-west-1c", + "public": true + }, + { + "id": "subnet-34173f72", + "vpc": "vpc-c84eabad", + "cidr": "172.31.0.0/20", + "az": "us-west-1b", + "public": true + }, + { + "id": "subnet-05b5dcdc91a8d3da2", + "vpc": "vpc-87832de2", + "cidr": "10.4.10.0/24", + "az": "us-west-1b", + "public": false + }, + { + "id": "subnet-16594550", + "vpc": "vpc-afe722ca", + "cidr": "10.2.2.0/24", + "az": "us-west-1b", + "public": false + }, + { + "id": "subnet-051f6d705e415834d", + "vpc": "vpc-03f799f47b766798c", + "cidr": "10.10.1.0/24", + "az": "us-west-1b", + "public": true + } + ], + "sgs": [ + { + "id": "sg-642cf701", + "name": "efw.vpc.01-securitygroup-web01", + "rules_in": [ + "tcp 80 from 0.0.0.0/0", + "-1 None from sg-da75adbf", + "icmp 0--1 from 0.0.0.0/0", + "tcp 12489 from 64.71.160.96/27", + "tcp 5666 from 64.71.160.96/27", + "tcp 3389 from 76.126.204.87/32", + "tcp 3389 from 64.71.160.98/32", + "tcp 3389 from 50.156.113.43/32", + "tcp 3389 from 162.222.31.254/32", + "tcp 3389 from 173.164.212.89/32", + "tcp 3389 from 174.85.92.60/32", + "tcp 443 from 0.0.0.0/0", + "tcp 8172 from 173.10.69.6/32", + "tcp 8172 from 173.164.212.89/32", + "icmp 8--1 from 0.0.0.0/0" + ], + "rules_out": [ + "-1 None from 0.0.0.0/0" + ] + }, + { + "id": "sg-00600deefd8e47cd0", + "name": "efw.vpc.02-securitygroup-rds", + "rules_in": [ + "tcp 3306 from 173.164.212.89/32" + ], + "rules_out": [ + "-1 None from 0.0.0.0/0" + ] + }, + { + "id": "sg-da75adbf", + "name": "default", + "rules_in": [ + "-1 None from sg-da75adbf", + "tcp 22 from 0.0.0.0/0", + "tcp 22 from sg-4235ee27", + "udp 11094 from 0.0.0.0/0", + "tcp 3389 from sg-4235ee27", + "icmp -1 from sg-4235ee27" + ], + "rules_out": [ + "-1 None from 0.0.0.0/0" + ] + }, + { + "id": "sg-c05a2ba5", + "name": "default", + "rules_in": [ + "-1 None from sg-c05a2ba5" + ], + "rules_out": [ + "-1 None from 0.0.0.0/0" + ] + }, + { + "id": "sg-0c00315bbb744b876", + "name": "default", + "rules_in": [ + "-1 None from sg-0c00315bbb744b876" + ], + "rules_out": [ + "-1 None from 0.0.0.0/0" + ] + }, + { + "id": "sg-495ab32c", + "name": "default", + "rules_in": [ + "-1 None from sg-495ab32c", + "tcp 3306 from 54.85.48.0/24", + "tcp 3306 from 173.164.212.89/32" + ], + "rules_out": [ + "-1 None from 0.0.0.0/0" + ] + }, + { + "id": "sg-0f2465c4421c2d5c2", + "name": "x-to-pdf-AppSG-4DM5CX7D35LE", + "rules_in": [ + "-1 None from sg-0f2465c4421c2d5c2", + "tcp 1-65000 from sg-b45a2bd1" + ], + "rules_out": [ + "-1 None from 0.0.0.0/0" + ] + }, + { + "id": "sg-8b746aec", + "name": "launch-wizard-1", + "rules_in": [ + "tcp 80 from 47.208.245.238/32", + "tcp 22 from 47.208.245.238/32", + "tcp 22 from 64.71.160.98/32", + "tcp 443 from 47.208.245.238/32", + "icmp 8--1 from 47.208.245.238/32" + ], + "rules_out": [ + "-1 None from 0.0.0.0/0" + ] + }, + { + "id": "sg-0a872ac3a6d9132a6", + "name": "node-app-alb-stack-AppAccessSG-DLeS5dz4pWwk", + "rules_in": [ + "tcp 22 from 0.0.0.0/0", + "tcp 11094 from 0.0.0.0/0", + "udp 11094 from 0.0.0.0/0" + ], + "rules_out": [ + "-1 None from 0.0.0.0/0" + ] + }, + { + "id": "sg-076d2ea1df0054074", + "name": "node-app-alb-stack-LoadBalancerSG-LgFQ2PFaob27", + "rules_in": [ + "tcp 80 from 0.0.0.0/0", + "tcp 443 from 0.0.0.0/0" + ], + "rules_out": [ + "-1 None from 0.0.0.0/0" + ] + }, + { + "id": "sg-b45a2bd1", + "name": "vault.vpc.01-securitygroup", + "rules_in": [ + "tcp 80 from 0.0.0.0/0", + "tcp 8080 from 76.246.46.113/32", + "icmp 0--1 from 0.0.0.0/0", + "icmp 0--1 from ::/0", + "tcp 22 from 73.90.210.219/32", + "tcp 22 from 73.90.209.115/32", + "tcp 22 from 47.208.245.238/32", + "tcp 22 from 73.90.211.68/32", + "tcp 22 from 166.170.37.145/32", + "tcp 22 from 135.26.148.110/32", + "tcp 22 from 108.82.46.156/32", + "tcp 22 from 47.208.247.13/32", + "tcp 22 from 98.150.190.32/32", + "tcp 22 from 64.71.160.0/24", + "tcp 22 from 76.126.204.87/32", + "tcp 22 from 13.52.6.112/29", + "tcp 22 from 174.85.92.60/32", + "tcp 22 from 45.28.138.65/32", + "tcp 5666 from 64.71.160.96/27", + "udp 11094 from 0.0.0.0/0", + "tcp 443 from 0.0.0.0/0", + "icmp 8--1 from 0.0.0.0/0" + ], + "rules_out": [ + "-1 None from 0.0.0.0/0" + ] + }, + { + "id": "sg-4235ee27", + "name": "efw.vpc.01-securitygroup-db01", + "rules_in": [ + "tcp 1433 from 10.2.2.0/24", + "-1 None from sg-da75adbf" + ], + "rules_out": [ + "-1 None from 0.0.0.0/0" + ] + }, + { + "id": "sg-04167d2e18ba15e45", + "name": "node-app-alb-stack-AppSG-tYWl4C0wtvl6", + "rules_in": [ + "tcp 8080 from sg-076d2ea1df0054074" + ], + "rules_out": [ + "-1 None from 0.0.0.0/0" + ] + }, + { + "id": "sg-06348763", + "name": "default", + "rules_in": [ + "tcp 1433 from 173.164.212.89/32", + "tcp 1433 from 72.173.157.190/32", + "tcp 1433 from 75.101.48.86/32", + "tcp 1433 from 107.3.172.143/32", + "tcp 1433 from 10.3.0.0/16", + "tcp 80 from 0.0.0.0/0", + "tcp 5432 from 10.3.0.157/32", + "tcp 5432 from 67.139.78.162/32", + "tcp 5432 from 209.210.190.204/32", + "tcp 5432 from 10.3.0.232/32", + "tcp 5432 from 10.3.0.247/32", + "tcp 5432 from sg-08fb4b412f90d5913", + "tcp 4021 from 173.164.212.89/32", + "tcp 5666 from 64.71.160.121/32", + "tcp 4020 from 173.164.212.89/32", + "tcp 3389 from 76.126.204.87/32", + "tcp 3389 from 64.71.160.98/32", + "tcp 3389 from 173.164.212.89/32", + "tcp 3389 from 72.173.157.190/32", + "tcp 3389 from 10.3.0.0/16", + "tcp 445 from 10.3.0.0/16", + "tcp 443 from 0.0.0.0/0", + "tcp 4026 from 173.164.212.89/32", + "tcp 4026 from 10.3.0.0/16", + "tcp 8172 from 173.164.212.89/32", + "tcp 8172 from 10.3.0.0/16", + "icmp 0--1 from 0.0.0.0/0", + "icmp 0--1 from 173.164.212.89/32", + "tcp 22 from 0.0.0.0/0", + "udp 1194 from 0.0.0.0/0", + "tcp 4024 from 173.164.212.89/32", + "tcp 1194 from 0.0.0.0/0", + "tcp 12489 from 64.71.160.121/32", + "tcp 4027 from 10.3.0.0/16", + "udp 11094 from 0.0.0.0/0", + "icmp 8--1 from 0.0.0.0/0" + ], + "rules_out": [ + "-1 None from 0.0.0.0/0" + ] + }, + { + "id": "sg-08fb4b412f90d5913", + "name": "eco.lambda.securitygroup", + "rules_in": [], + "rules_out": [ + "-1 None from 0.0.0.0/0" + ] + }, + { + "id": "sg-09621eafa81d9554d", + "name": "vault.vpc.01.securitygroup-rds-pvt", + "rules_in": [ + "tcp 3306 from 173.164.212.89/32", + "tcp 3306 from sg-b45a2bd1" + ], + "rules_out": [ + "-1 None from 0.0.0.0/0" + ] + } + ], + "enis": [ + { + "id": "eni-03cb7e3c6efba4fe6", + "subnet": "subnet-260ee27f", + "sgs": [ + "sg-06348763" + ], + "privateIp": "10.3.0.216", + "publicIp": "52.8.79.80" + }, + { + "id": "eni-0c6e3761c14140e52", + "subnet": "subnet-051f6d705e415834d", + "sgs": [ + "sg-076d2ea1df0054074" + ], + "privateIp": "10.10.1.212", + "publicIp": "50.18.175.227" + }, + { + "id": "eni-6a099b32", + "subnet": "subnet-260ee27f", + "sgs": [ + "sg-06348763" + ], + "privateIp": "10.3.0.207", + "publicIp": null + }, + { + "id": "eni-072ff2545f56240a7", + "subnet": "subnet-16594550", + "sgs": [ + "sg-4235ee27" + ], + "privateIp": "10.2.2.16", + "publicIp": null + }, + { + "id": "eni-064252b93ca105b7c", + "subnet": "subnet-05b5dcdc91a8d3da2", + "sgs": [ + "sg-b45a2bd1" + ], + "privateIp": "10.4.10.82", + "publicIp": null + }, + { + "id": "eni-08d57de7981ae0020", + "subnet": "subnet-035f81142068bf961", + "sgs": [ + "sg-04167d2e18ba15e45", + "sg-0a872ac3a6d9132a6" + ], + "privateIp": "10.10.2.106", + "publicIp": null + }, + { + "id": "eni-00feca9ca48c7ae0c", + "subnet": "subnet-05b5dcdc91a8d3da2", + "sgs": [ + "sg-b45a2bd1" + ], + "privateIp": "10.4.10.141", + "publicIp": null + }, + { + "id": "eni-8041e3da", + "subnet": "subnet-260ee27f", + "sgs": [ + "sg-06348763" + ], + "privateIp": "10.3.0.201", + "publicIp": null + }, + { + "id": "eni-9d73dbc7", + "subnet": "subnet-260ee27f", + "sgs": [ + "sg-06348763" + ], + "privateIp": "10.3.0.98", + "publicIp": null + }, + { + "id": "eni-04237833786a67013", + "subnet": "subnet-051f6d705e415834d", + "sgs": [ + "sg-0a872ac3a6d9132a6" + ], + "privateIp": "10.10.1.166", + "publicIp": "52.53.243.75" + }, + { + "id": "eni-084002309358bb545", + "subnet": "subnet-f73afeae", + "sgs": [ + "sg-06348763" + ], + "privateIp": "10.3.1.134", + "publicIp": null + }, + { + "id": "eni-0827085d571dccab7", + "subnet": "subnet-d137fd88", + "sgs": [ + "sg-b45a2bd1" + ], + "privateIp": "10.4.0.221", + "publicIp": "52.53.117.111" + }, + { + "id": "eni-0e844b9d718f3daa0", + "subnet": "subnet-16594550", + "sgs": [ + "sg-642cf701" + ], + "privateIp": "10.2.2.226", + "publicIp": "52.8.26.159" + }, + { + "id": "eni-0d6f412450d0e082b", + "subnet": "subnet-260ee27f", + "sgs": [ + "sg-06348763" + ], + "privateIp": "10.3.0.63", + "publicIp": "52.8.7.0" + }, + { + "id": "eni-05788a45421ce580f", + "subnet": "subnet-d137fd88", + "sgs": [ + "sg-b45a2bd1" + ], + "privateIp": "10.4.0.197", + "publicIp": "52.8.75.57" + }, + { + "id": "eni-0775830b9669fa479", + "subnet": "subnet-16594550", + "sgs": [ + "sg-642cf701" + ], + "privateIp": "10.2.2.18", + "publicIp": "54.153.101.192" + }, + { + "id": "eni-0f54a2ee3a5237ae1", + "subnet": "subnet-260ee27f", + "sgs": [ + "sg-06348763" + ], + "privateIp": "10.3.0.111", + "publicIp": "54.153.3.41" + }, + { + "id": "eni-08eb3a38264ccd212", + "subnet": "subnet-260ee27f", + "sgs": [ + "sg-06348763" + ], + "privateIp": "10.3.0.73", + "publicIp": null + }, + { + "id": "eni-0afbe7eb22dd6e8e3", + "subnet": "subnet-260ee27f", + "sgs": [ + "sg-06348763" + ], + "privateIp": "10.3.0.112", + "publicIp": "13.52.49.251" + }, + { + "id": "eni-018923614c623ef74", + "subnet": "subnet-260ee27f", + "sgs": [ + "sg-06348763" + ], + "privateIp": "10.3.0.122", + "publicIp": "52.8.85.37" + }, + { + "id": "eni-0f310dd2e36654ed7", + "subnet": "subnet-260ee27f", + "sgs": [ + "sg-06348763" + ], + "privateIp": "10.3.0.120", + "publicIp": null + }, + { + "id": "eni-00172626263229e1a", + "subnet": "subnet-051f6d705e415834d", + "sgs": [], + "privateIp": "10.10.1.37", + "publicIp": "13.57.111.5" + }, + { + "id": "eni-0893189c99a73d4f2", + "subnet": "subnet-260ee27f", + "sgs": [ + "sg-06348763" + ], + "privateIp": "10.3.0.167", + "publicIp": null + }, + { + "id": "eni-0d0b9801f1e66ec76", + "subnet": "subnet-d137fd88", + "sgs": [], + "privateIp": "10.4.0.246", + "publicIp": "184.169.224.203" + }, + { + "id": "eni-b574dcef", + "subnet": "subnet-16594550", + "sgs": [ + "sg-642cf701" + ], + "privateIp": "10.2.2.48", + "publicIp": null + }, + { + "id": "eni-0080f66b73a68d1d1", + "subnet": "subnet-d137fd88", + "sgs": [ + "sg-b45a2bd1" + ], + "privateIp": "10.4.0.117", + "publicIp": "52.8.219.246" + }, + { + "id": "eni-02075fc7f6b5ed6f3", + "subnet": "subnet-260ee27f", + "sgs": [ + "sg-06348763" + ], + "privateIp": "10.3.0.211", + "publicIp": "13.57.152.11" + }, + { + "id": "eni-026ab4825bc4dfb8b", + "subnet": "subnet-260ee27f", + "sgs": [ + "sg-06348763" + ], + "privateIp": "10.3.0.154", + "publicIp": null + }, + { + "id": "eni-0ac39f75ad7dc0709", + "subnet": "subnet-0cb2aa7457413f5fe", + "sgs": [ + "sg-076d2ea1df0054074" + ], + "privateIp": "10.10.3.88", + "publicIp": "52.52.1.145" + }, + { + "id": "eni-0015cacdc10d467e8", + "subnet": "subnet-005bfd58e719e031f", + "sgs": [ + "sg-09621eafa81d9554d" + ], + "privateIp": "10.4.11.198", + "publicIp": null + }, + { + "id": "eni-039a605986c15dabf", + "subnet": "subnet-005bfd58e719e031f", + "sgs": [ + "sg-b45a2bd1" + ], + "privateIp": "10.4.11.166", + "publicIp": null + }, + { + "id": "eni-01f9242eb64928de8", + "subnet": "subnet-005bfd58e719e031f", + "sgs": [ + "sg-09621eafa81d9554d" + ], + "privateIp": "10.4.11.139", + "publicIp": null + }, + { + "id": "eni-09a54855abf31a012", + "subnet": "subnet-005bfd58e719e031f", + "sgs": [ + "sg-b45a2bd1" + ], + "privateIp": "10.4.11.69", + "publicIp": null + }, + { + "id": "eni-0787462fd9a1d1b6d", + "subnet": "subnet-ebc4188e", + "sgs": [ + "sg-da75adbf" + ], + "privateIp": "10.2.1.156", + "publicIp": "54.241.122.239" + } + ], + "ec2": [ + { + "id": "i-0dc281f8d162602c8", + "name": "efw.web.06b public-site", + "type": "r5.xlarge", + "privateIp": "10.3.0.211", + "publicIp": "13.57.152.11", + "sgs": [ + "sg-06348763" + ], + "subnet": "subnet-260ee27f" + }, + { + "id": "i-0997a73b08f6e5862", + "name": "efw.web.03b logon", + "type": "t3.medium", + "privateIp": "10.2.2.18", + "publicIp": "54.153.101.192", + "sgs": [ + "sg-642cf701" + ], + "subnet": "subnet-16594550" + }, + { + "id": "i-0c8100e3460fa8fd0", + "name": "vpn-default-vpc-02-001", + "type": "t4g.nano", + "privateIp": "10.3.0.112", + "publicIp": "13.52.49.251", + "sgs": [ + "sg-06348763" + ], + "subnet": "subnet-260ee27f" + }, + { + "id": "i-041021cd89e15282c", + "name": "vpn-vpc-01", + "type": "t4g.nano", + "privateIp": "10.2.1.156", + "publicIp": "54.241.122.239", + "sgs": [ + "sg-da75adbf" + ], + "subnet": "subnet-ebc4188e" + }, + { + "id": "i-073b97cbda2b200c3", + "name": "vault.staging.05", + "type": "t3a.medium", + "privateIp": "10.4.0.117", + "publicIp": "52.8.219.246", + "sgs": [ + "sg-b45a2bd1" + ], + "subnet": "subnet-d137fd88" + }, + { + "id": "i-0669f35ab2d0fc444", + "name": "vault.production.02", + "type": "t3a.medium", + "privateIp": "10.4.0.197", + "publicIp": "52.8.75.57", + "sgs": [ + "sg-b45a2bd1" + ], + "subnet": "subnet-d137fd88" + }, + { + "id": "i-01b3f3cd57976bdf3", + "name": "efw-vpn-default-vault-vpn-01", + "type": "t4g.nano", + "privateIp": "10.4.0.221", + "publicIp": "52.53.117.111", + "sgs": [ + "sg-b45a2bd1" + ], + "subnet": "subnet-d137fd88" + }, + { + "id": "i-0272763b46610ac1b", + "name": "efw.web.04d edit-site", + "type": "m7i.xlarge", + "privateIp": "10.3.0.122", + "publicIp": "52.8.85.37", + "sgs": [ + "sg-06348763" + ], + "subnet": "subnet-260ee27f" + }, + { + "id": "i-0c82adf476c7c5e32", + "name": "efw.web.06d public-site", + "type": "m7i.xlarge", + "privateIp": "10.3.0.63", + "publicIp": "52.8.7.0", + "sgs": [ + "sg-06348763" + ], + "subnet": "subnet-260ee27f" + }, + { + "id": "i-0636fd0b033c9b32a", + "name": "efw.acmetest", + "type": "t3.medium", + "privateIp": "10.3.0.73", + "publicIp": null, + "sgs": [ + "sg-06348763" + ], + "subnet": "subnet-260ee27f" + }, + { + "id": "i-09241599c2590b66a", + "name": "efw.acmetest2.linux", + "type": "t3.micro", + "privateIp": "10.3.0.167", + "publicIp": null, + "sgs": [ + "sg-06348763" + ], + "subnet": "subnet-260ee27f" + }, + { + "id": "i-0d7f643cb9d960645", + "name": "efw.vpn10.acmetest", + "type": "t4g.nano", + "privateIp": "10.10.1.166", + "publicIp": "52.53.243.75", + "sgs": [ + "sg-0a872ac3a6d9132a6" + ], + "subnet": "subnet-051f6d705e415834d" + }, + { + "id": "i-082b27477bbe6d8b5", + "name": "efw.acmetest3.linux", + "type": "t3.micro", + "privateIp": "10.10.2.106", + "publicIp": null, + "sgs": [ + "sg-04167d2e18ba15e45", + "sg-0a872ac3a6d9132a6" + ], + "subnet": "subnet-035f81142068bf961" + } + ], + "lbs": [ + { + "id": "NodeAppALB", + "scheme": "internet-facing", + "type": "application", + "subnets": [ + "subnet-051f6d705e415834d", + "subnet-0cb2aa7457413f5fe" + ], + "securityGroups": [ + "sg-076d2ea1df0054074" + ], + "listeners": [ + { + "proto": "HTTP", + "port": 80 + }, + { + "proto": "HTTPS", + "port": 443 + } + ], + "targetGroups": [ + { + "port": 8080, + "targets": [ + "i-082b27477bbe6d8b5" + ] + } + ] + } + ], + "rds": [ + { + "id": "f8-db-01", + "engine": "sqlserver-web", + "port": 0, + "publiclyAccessible": false, + "sgs": [ + "sg-06348763" + ], + "subnetGroup": [ + "subnet-e98e088c", + "subnet-f73afeae" + ] + }, + { + "id": "logon-db-02", + "engine": "sqlserver-web", + "port": 0, + "publiclyAccessible": false, + "sgs": [ + "sg-4235ee27" + ], + "subnetGroup": [ + "subnet-16594550", + "subnet-ebc4188e" + ] + }, + { + "id": "vault-db-production-v2", + "engine": "aurora-mysql", + "port": 0, + "publiclyAccessible": false, + "sgs": [ + "sg-09621eafa81d9554d" + ], + "subnetGroup": [ + "subnet-005bfd58e719e031f", + "subnet-05b5dcdc91a8d3da2" + ] + }, + { + "id": "vault-db-staging-v2", + "engine": "aurora-mysql", + "port": 0, + "publiclyAccessible": false, + "sgs": [ + "sg-09621eafa81d9554d" + ], + "subnetGroup": [ + "subnet-005bfd58e719e031f", + "subnet-05b5dcdc91a8d3da2" + ] + } + ], + "exposures": [ + { + "surface": "NodeAppALB:80", + "world_open": true, + "via": "APPLICATION", + "to": [ + "i-082b27477bbe6d8b5:8080" + ] + }, + { + "surface": "NodeAppALB:443", + "world_open": true, + "via": "APPLICATION", + "to": [ + "i-082b27477bbe6d8b5:8080" + ] + } + ] + } + } +} \ No newline at end of file diff --git a/index.php b/index.php new file mode 100644 index 0000000..11a7a74 --- /dev/null +++ b/index.php @@ -0,0 +1,243 @@ + + + + + + FlowGrid (Vue 2 POC) + + + +
+
+ +
+
 
+
+

{{ doc.title }}

+
+
+ + +
+
+
+ + + + + +
Done
+
+
+
+
+ + + + + + + + + +