Skip to content

telia-oss/appsync-resource

Repository files navigation

Build Status Go Report Card

AWS AppSync Concourse resource and Github action

A Concourse resource and Github action to update AppSync schema. Written in Go.

Concourse

Source Configuration

Parameter Required Example Description
api_id Yes znvjdp3n25epx
access_key_id Yes {YOUR_ACCESS_KEY_ID}
secret_access_key Yes {YOUR_SECRET_ACCESS_KEY}
session_token Yes {YOUR_SESSION_TOKEN}
region_name No eu-west-1 AWS region DEFAULT: eu-west-1

out: Update or Create schema.

Given a schema specified by schema_file, to update/create AppSync schema Or/And Given a resolvers JSON specified by resolvers_file, to update AppSync existing schema resolvers.

Parameters

  • schema_file: Optional. .grapqh schema File provided by an output of a task, if you didn't specify resolvers_file this field is Required..

  • resolvers_file: Optional. .yml resolver String provided by an output of a task, if you didn't specify schema_file this field is Required.. .

Example Configuration

Resource type

resource_types:
- name: appsync-resource
    type: docker-image
    source:
      repository: teliaoss/appsync-resource

Resource

resource:
- name: appsync-resource
    type: resource
    source:
      access_key_id: ((access-key))
      secret_access_key: ((secret-key))
      session_token: ((session-token))
      region_name: "eu-west-1"
      api_id: ((api-id))

Plan

- put: appsync-resource
  params: 
    schema_file: "path/to/schema.graphql"
    resolvers_file: "path/to/resolvers.yml"

Params file example

schema.graphql

resolvers.yml

Github action

Parameter Required Example Description
api_id Yes znvjdp3n25epx
access_key_id Yes {YOUR_ACCESS_KEY_ID}
secret_access_key Yes {YOUR_SECRET_ACCESS_KEY}
session_token Yes {YOUR_SESSION_TOKEN}
region_name No eu-west-1 AWS region DEFAULT: eu-west-1
ci No github DEFAULT: github
schema_file No workspace/schema.graphql
resolvers_file No workspace/resolvers.yml

Example Configuration

jobs:
  appsync:
    runs-on: ubuntu-latest

    steps:
    - name: update appsync
      uses: telia-oss/appsync-action@main
      with:
        schema_file: "workspace/schema.graphql"
        resolvers_file: "workspace/resolvers.yml"
        access_key_id: {YOUR_ACCESS_KEY_ID}  
        secret_access_key: {YOUR_SECRET_ACCESS_KEY} 
        session_token: {YOUR_SESSION_TOKEN}  
        api_id: "znvjdp3n25epx"
        ci: "github"