diff --git a/README.md b/README.md
index fbf24bc..0b37fab 100644
--- a/README.md
+++ b/README.md
@@ -17,6 +17,31 @@ This solution utilises the following services:
- S3 + Cloudfront (frontend)
- SSM Parameter Store (secrets management)
+#### Installation
+
+```hcl
+module "moot" {
+ source = "github.com/seanturner026/moot.git?ref=v1.0.0"
+
+ name = "moot"
+ admin_user_email = var.admin_user_email
+ enable_delete_admin_user = false
+ github_token = var.github_token
+ gitlab_token = var.gitlab_token
+ slack_webhook_url = var.slack_webhook_url
+ fqdn_alias = "moot.link"
+ hosted_zone_name = "moot.link"
+ enable_api_gateway_access_logs = true
+ tags = var.tags
+}
+```
+
+#### Workflows
+
+- Standard Deploy: Merges the HEAD branch into the BASE (e.g. main) branch, creates release based on BASE branch
+- Hotfix Deploy: Creates release based on the BASE branch
+
+
#### Repositories View
![alt text](https://github.com/seanturner026/moot/blob/main/assets/repositories.png?raw=true)
@@ -27,3 +52,33 @@ This solution utilises the following services:
#### Users View
![alt text](https://github.com/seanturner026/moot/blob/main/assets/users.png?raw=true)
+
+## Terraform Providers
+
+| Name | Version |
+|------|---------|
+| archive | n/a |
+| aws | n/a |
+| external | n/a |
+| null | n/a |
+
+## Terraform Inputs
+
+| Name | Description | Type | Default | Required |
+|------|-------------|------|---------|:--------:|
+| admin\_user\_email | Controls the creation of an admin user that is required to initially gain access to the
dashboard.
If access to the dashboard is completely lost, do the following
• `var.enable_delete_admin_user = true`
• `terraform apply`
• `var.enable_delete_admin_user = false`
• `terraform apply`
If the initial admin user should no longer be able to access the dashboard, revoke access by
setting `var.enable_delete_admin_user = true` and running `terraform apply` | `string` | `""` | no |
+| enable\_api\_gateway\_access\_logs | Enables API Gateway access logging to cloudwatch for the default stage. | `bool` | `false` | no |
+| enable\_delete\_admin\_user | Destroys the admin user.
Set this value to true to destroy the user, and to false to recreate the user. | `bool` | `false` | no |
+| fqdn\_alias | ALIAS for the Cloudfront distribution, S3, Cognito and API Gateway. Must be in the form of
`example.com`. | `string` | `""` | no |
+| github\_token | Token for Github. | `string` | `""` | no |
+| gitlab\_token | Token for Gitlab. | `string` | `""` | no |
+| hosted\_zone\_name | Name of AWS Route53 Hosted Zone for DNS. | `string` | `""` | no |
+| name | Name to be applied to all resources. | `string` | `"release_dashboard"` | no |
+| slack\_webhook\_url | URL to send slack message payloads to. | `string` | `""` | no |
+| tags | Map of tags to be applied to resources. | `map(string)` | `{}` | no |
+
+## Terraform Outputs
+
+| Name | Description |
+|------|-------------|
+| cloudfront\_domain\_name | FQDN of Cloudfront Distribution that can be used for DNS. |
diff --git a/deployments/terraform/data.tf b/data.tf
similarity index 100%
rename from deployments/terraform/data.tf
rename to data.tf
diff --git a/deployments/terraform/.terraform.lock.hcl b/deployments/terraform/.terraform.lock.hcl
deleted file mode 100644
index 80c6ea3..0000000
--- a/deployments/terraform/.terraform.lock.hcl
+++ /dev/null
@@ -1,75 +0,0 @@
-# This file is maintained automatically by "terraform init".
-# Manual edits may be lost in future updates.
-
-provider "registry.terraform.io/hashicorp/archive" {
- version = "2.2.0"
- hashes = [
- "h1:2K5LQkuWRS2YN1/YoNaHn9MAzjuTX8Gaqy6i8Mbfv8Y=",
- "zh:06bd875932288f235c16e2237142b493c2c2b6aba0e82e8c85068332a8d2a29e",
- "zh:0c681b481372afcaefddacc7ccdf1d3bb3a0c0d4678a526bc8b02d0c331479bc",
- "zh:100fc5b3fc01ea463533d7bbfb01cb7113947a969a4ec12e27f5b2be49884d6c",
- "zh:55c0d7ddddbd0a46d57c51fcfa9b91f14eed081a45101dbfc7fd9d2278aa1403",
- "zh:73a5dd68379119167934c48afa1101b09abad2deb436cd5c446733e705869d6b",
- "zh:841fc4ac6dc3479981330974d44ad2341deada8a5ff9e3b1b4510702dfbdbed9",
- "zh:91be62c9b41edb137f7f835491183628d484e9d6efa82fcb75cfa538c92791c5",
- "zh:acd5f442bd88d67eb948b18dc2ed421c6c3faee62d3a12200e442bfff0aa7d8b",
- "zh:ad5720da5524641ad718a565694821be5f61f68f1c3c5d2cfa24426b8e774bef",
- "zh:e63f12ea938520b3f83634fc29da28d92eed5cfbc5cc8ca08281a6a9c36cca65",
- "zh:f6542918faa115df46474a36aabb4c3899650bea036b5f8a5e296be6f8f25767",
- ]
-}
-
-provider "registry.terraform.io/hashicorp/aws" {
- version = "3.42.0"
- constraints = ">= 3.37.0"
- hashes = [
- "h1:C6/yDp6BhuDFx0qdkBuJj/OWUJpAoraHTJaU6ac38Rw=",
- "zh:126c856a6eedddd8571f161a826a407ba5655a37a6241393560a96b8c4beca1a",
- "zh:1a4868e6ac734b5fc2e79a4a889d176286b66664aad709435aa6acee5871d5b0",
- "zh:40fed7637ab8ddeb93bef06aded35d970f0628025b97459ae805463e8aa0a58a",
- "zh:68def3c0a5a1aac1db6372c51daef858b707f03052626d3427ac24cba6f2014d",
- "zh:6db7ec9c8d1803a0b6f40a664aa892e0f8894562de83061fa7ac1bc51ff5e7e5",
- "zh:7058abaad595930b3f97dc04e45c112b2dbf37d098372a849081f7081da2fb52",
- "zh:8c25adb15a19da301c478aa1f4a4d8647cabdf8e5dae8331d4490f80ea718c26",
- "zh:8e129b847401e39fcbc54817726dab877f36b7f00ff5ed76f7b43470abe99ff9",
- "zh:d268bb267a2d6b39df7ddee8efa7c1ef7a15cf335dfa5f2e64c9dae9b623a1b8",
- "zh:d6eeb3614a0ab50f8e9ab5666ae5754ea668ce327310e5b21b7f04a18d7611a8",
- "zh:f5d3c58055dff6e38562b75d3edc908cb2f1e45c6914f6b00f4773359ce49324",
- ]
-}
-
-provider "registry.terraform.io/hashicorp/external" {
- version = "2.1.0"
- hashes = [
- "h1:LTl5CGW8wiIEe16AC4MtXN/95xWWNDbap70zJsBTk0w=",
- "zh:0d83ffb72fbd08986378204a7373d8c43b127049096eaf2765bfdd6b00ad9853",
- "zh:7577d6edc67b1e8c2cf62fe6501192df1231d74125d90e51d570d586d95269c5",
- "zh:9c669ded5d5affa4b2544952c4b6588dfed55260147d24ced02dca3a2829f328",
- "zh:a404d46f2831f90633947ab5d57e19dbfe35b3704104ba6ec80bcf50b058acfd",
- "zh:ae1caea1c936d459ceadf287bb5c5bd67b5e2a7819df6f5c4114b7305df7f822",
- "zh:afb4f805477694a4b9dde86b268d2c0821711c8aab1c6088f5f992228c4c06fb",
- "zh:b993b4a1de8a462643e78f4786789e44ce5064b332fee1cb0d6250ed085561b8",
- "zh:c84b2c13fa3ea2c0aa7291243006d560ce480a5591294b9001ce3742fc9c5791",
- "zh:c8966f69b7eccccb771704fd5335923692eccc9e0e90cb95d14538fe2e92a3b8",
- "zh:d5fe68850d449b811e633a300b114d0617df6d450305e8251643b4d143dc855b",
- "zh:ddebfd1e674ba336df09b1f27bbaa0e036c25b7a7087dc8081443f6e5954028b",
- ]
-}
-
-provider "registry.terraform.io/hashicorp/null" {
- version = "3.1.0"
- hashes = [
- "h1:xhbHC6in3nQryvTQBWKxebi3inG5OCgHgc4fRxL0ymc=",
- "zh:02a1675fd8de126a00460942aaae242e65ca3380b5bb192e8773ef3da9073fd2",
- "zh:53e30545ff8926a8e30ad30648991ca8b93b6fa496272cd23b26763c8ee84515",
- "zh:5f9200bf708913621d0f6514179d89700e9aa3097c77dac730e8ba6e5901d521",
- "zh:9ebf4d9704faba06b3ec7242c773c0fbfe12d62db7d00356d4f55385fc69bfb2",
- "zh:a6576c81adc70326e4e1c999c04ad9ca37113a6e925aefab4765e5a5198efa7e",
- "zh:a8a42d13346347aff6c63a37cda9b2c6aa5cc384a55b2fe6d6adfa390e609c53",
- "zh:c797744d08a5307d50210e0454f91ca4d1c7621c68740441cf4579390452321d",
- "zh:cecb6a304046df34c11229f20a80b24b1603960b794d68361a67c5efe58e62b8",
- "zh:e1371aa1e502000d9974cfaff5be4cfa02f47b17400005a16f14d2ef30dc2a70",
- "zh:fc39cc1fe71234a0b0369d5c5c7f876c71b956d23d7d6f518289737a001ba69b",
- "zh:fea4227271ebf7d9e2b61b89ce2328c7262acd9fd190e1fd6d15a591abfa848e",
- ]
-}
diff --git a/deployments/terraform/README.md b/deployments/terraform/README.md
deleted file mode 100644
index 036d6f0..0000000
--- a/deployments/terraform/README.md
+++ /dev/null
@@ -1,28 +0,0 @@
-## Requirements
-
-No requirements.
-
-## Providers
-
-| Name | Version |
-|------|---------|
-| archive | n/a |
-| aws | n/a |
-| null | n/a |
-| random | n/a |
-
-## Inputs
-
-| Name | Description | Type | Default | Required |
-|------|-------------|------|---------|:--------:|
-| admin\_user\_email | Email address for dashboard admin | `string` | n/a | yes |
-| dev\_cloudfront\_dns | n/a | `string` | n/a | yes |
-| enable\_admin\_user\_creation | Controls the creation of an admin user that is required to initially gain access to the
dashboard.
If access to the dashboard is completely lost, do the following
• `var.enable_admin_user_creation = false`
• terraform apply
• `var.enable_admin_user_creation = true`
• terraform apply
If the initial admin user should no longer be able to access the dashboard, revoke access by
setting `var.enable_admin_user_creation = false` and running `terraform apply` | `bool` | `true` | no |
-| github\_token | Token for Github. | `string` | `""` | no |
-| gitlab\_token | Token for Gitlab. | `string` | `""` | no |
-| slack\_webhook\_url | URL to send slack message payloads to. | `string` | `""` | no |
-| tags | Map of tags to be applied to resources. | `map(string)` | n/a | yes |
-
-## Outputs
-
-No output.
diff --git a/deployments/terraform/locals.tf b/locals.tf
similarity index 100%
rename from deployments/terraform/locals.tf
rename to locals.tf
diff --git a/deployments/terraform/modules.tf b/modules.tf
similarity index 100%
rename from deployments/terraform/modules.tf
rename to modules.tf
diff --git a/deployments/terraform/outputs.tf b/outputs.tf
similarity index 100%
rename from deployments/terraform/outputs.tf
rename to outputs.tf
diff --git a/deployments/terraform/r_acm.tf b/r_acm.tf
similarity index 100%
rename from deployments/terraform/r_acm.tf
rename to r_acm.tf
diff --git a/deployments/terraform/r_api_gateway.tf b/r_api_gateway.tf
similarity index 100%
rename from deployments/terraform/r_api_gateway.tf
rename to r_api_gateway.tf
diff --git a/deployments/terraform/r_cloudwatch.tf b/r_cloudwatch.tf
similarity index 100%
rename from deployments/terraform/r_cloudwatch.tf
rename to r_cloudwatch.tf
diff --git a/deployments/terraform/r_cognito.tf b/r_cognito.tf
similarity index 100%
rename from deployments/terraform/r_cognito.tf
rename to r_cognito.tf
diff --git a/deployments/terraform/r_dynamodb.tf b/r_dynamodb.tf
similarity index 100%
rename from deployments/terraform/r_dynamodb.tf
rename to r_dynamodb.tf
diff --git a/deployments/terraform/r_iam.tf b/r_iam.tf
similarity index 100%
rename from deployments/terraform/r_iam.tf
rename to r_iam.tf
diff --git a/deployments/terraform/r_lambda.tf b/r_lambda.tf
similarity index 100%
rename from deployments/terraform/r_lambda.tf
rename to r_lambda.tf
diff --git a/deployments/terraform/r_null.tf b/r_null.tf
similarity index 100%
rename from deployments/terraform/r_null.tf
rename to r_null.tf
diff --git a/deployments/terraform/r_route53.tf b/r_route53.tf
similarity index 100%
rename from deployments/terraform/r_route53.tf
rename to r_route53.tf
diff --git a/deployments/terraform/r_s3.tf b/r_s3.tf
similarity index 100%
rename from deployments/terraform/r_s3.tf
rename to r_s3.tf
diff --git a/deployments/terraform/r_ssm.tf b/r_ssm.tf
similarity index 100%
rename from deployments/terraform/r_ssm.tf
rename to r_ssm.tf
diff --git a/deployments/terraform/assets/cognito.go b/terraform_assets/assets/cognito.go
similarity index 100%
rename from deployments/terraform/assets/cognito.go
rename to terraform_assets/assets/cognito.go
diff --git a/deployments/terraform/assets/cognito_invite_template.html b/terraform_assets/assets/cognito_invite_template.html
similarity index 100%
rename from deployments/terraform/assets/cognito_invite_template.html
rename to terraform_assets/assets/cognito_invite_template.html
diff --git a/deployments/terraform/assets/dynamodb_put_item_input.json b/terraform_assets/assets/dynamodb_put_item_input.json
similarity index 100%
rename from deployments/terraform/assets/dynamodb_put_item_input.json
rename to terraform_assets/assets/dynamodb_put_item_input.json
diff --git a/deployments/terraform/examples/complete/.terraform.lock.hcl b/terraform_examples/complete/.terraform.lock.hcl
similarity index 100%
rename from deployments/terraform/examples/complete/.terraform.lock.hcl
rename to terraform_examples/complete/.terraform.lock.hcl
diff --git a/deployments/terraform/examples/complete/main.tf b/terraform_examples/complete/main.tf
similarity index 95%
rename from deployments/terraform/examples/complete/main.tf
rename to terraform_examples/complete/main.tf
index a1bbe6d..c47bd52 100644
--- a/deployments/terraform/examples/complete/main.tf
+++ b/terraform_examples/complete/main.tf
@@ -1,4 +1,4 @@
-module "dashboard" {
+module "moot" {
source = "../../"
name = "moot"
diff --git a/deployments/terraform/examples/complete/provider.tf b/terraform_examples/complete/provider.tf
similarity index 100%
rename from deployments/terraform/examples/complete/provider.tf
rename to terraform_examples/complete/provider.tf
diff --git a/deployments/terraform/examples/complete/terraform.tfvars b/terraform_examples/complete/terraform.tfvars
similarity index 100%
rename from deployments/terraform/examples/complete/terraform.tfvars
rename to terraform_examples/complete/terraform.tfvars
diff --git a/deployments/terraform/examples/complete/variables.tf b/terraform_examples/complete/variables.tf
similarity index 100%
rename from deployments/terraform/examples/complete/variables.tf
rename to terraform_examples/complete/variables.tf
diff --git a/deployments/terraform/variables.tf b/variables.tf
similarity index 100%
rename from deployments/terraform/variables.tf
rename to variables.tf