From 383dbd27017795caf3df14f74000e747f66071ab Mon Sep 17 00:00:00 2001 From: Jarrod Lowe Date: Thu, 15 Aug 2024 13:41:34 +1200 Subject: [PATCH] Iniial GraphQL --- graphql/schema.graphql | 31 +++++ terraform/environment/aws-dev/main.tf | 2 +- terraform/environment/aws/deploy.sh | 10 +- terraform/environment/wildsea-dev/plan | Bin 14462 -> 18260 bytes terraform/module/iac-roles/policy.tf | 163 +++++++++++++++++++++++++ terraform/module/wildsea/graphql.tf | 56 +++++++++ 6 files changed, 260 insertions(+), 2 deletions(-) create mode 100644 graphql/schema.graphql create mode 100644 terraform/module/wildsea/graphql.tf diff --git a/graphql/schema.graphql b/graphql/schema.graphql new file mode 100644 index 00000000..16067205 --- /dev/null +++ b/graphql/schema.graphql @@ -0,0 +1,31 @@ +type Mutation { + createGame(input: CreateGameInput!): Game! +} + +type Query { + getGame(input: ID!): Game! +} + +input CreateGameInput { + name: String! + description: String + publicNotes: String + privateNotes: String + fireflyUserId: ID! + players: [ID!]! +} + +type Game { + id: ID! + name: String! + description: String + publicNotes: String + privateNotes: String +# fireflyUser: User! +# players: [ID!]! +# playerSheets: [PlayerSheet!]! +# shipSheet: ShipSheet +# clocks: [Clock!]! + createdAt: AWSDateTime! + updatedAt: AWSDateTime! +} diff --git a/terraform/environment/aws-dev/main.tf b/terraform/environment/aws-dev/main.tf index 6d0e9b80..a32f67c2 100644 --- a/terraform/environment/aws-dev/main.tf +++ b/terraform/environment/aws-dev/main.tf @@ -24,7 +24,7 @@ variable "state_bucket" { variable "environment" { description = "Unique name for the deployment" type = string - default = "primary" + default = "dev" } terraform { diff --git a/terraform/environment/aws/deploy.sh b/terraform/environment/aws/deploy.sh index b12ca90f..7c54ffeb 100755 --- a/terraform/environment/aws/deploy.sh +++ b/terraform/environment/aws/deploy.sh @@ -8,11 +8,19 @@ fi DIR="$( dirname "$0" )" cd "${DIR}" +if [[ "${DIR}" == *-dev ]] ; then + DEFAULT_ENVIRONMENT="dev" +else + DEFAULT_ENVIRONMENT="primary" +fi + ACCOUNT_ID="$1" -ENVIRONMENT="${2:-primary}" +ENVIRONMENT="${2:-${DEFAULT_ENVIRONMENT}}" AWS_REGION="${3:-ap-southeast-2}" STATE_BUCKET="terraform-state-${ACCOUNT_ID}" +echo "Using ${ENVIRONMENT} environment" + if ! aws help >/dev/null ; then echo >&2 "Error: aws cli not installed" exit 3 diff --git a/terraform/environment/wildsea-dev/plan b/terraform/environment/wildsea-dev/plan index 881d2b3f2de36ea909516fb751ca011832c9f9b8..ff4b49b62a877b4516f3a564bc7dd2d48b31fe88 100644 GIT binary patch delta 16024 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 S`V-(kmcx%jLrwgzPyY`Gc7JOC delta 12355 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