def main()

in workshop/post_build.py [0:0]


def main():
    # Setup environment
    region = os.environ['RT_REGION']
    workshop_name = os.environ['WORKSHOP_NAME']
    gql_endpoint = os.environ['GQL_ENDPOINT']
    gql_assume_role = os.environ['GQL_ROLE']
    # for now content handle only workshop, in future will be added delivery 
    content_id = workshop_name
    content_structures = []


    # Analize languages in toml file
    dict_toml = toml.load(open('./config.toml'))
    number_of_languages = len(dict_toml['Languages'])
    for i, lang in enumerate(dict_toml['Languages']):
        print('Load JSON structure\n')
        if number_of_languages == 1:
            index_location = "./public/index.json"
        else:
            index_location = "./public/" + lang +"/index.json"
        with open(index_location, 'r') as j:
            current_structure = json.load(j)
        print('Finished Load JSON\n')
        content_structures.append({"language": lang, "structure": current_structure})


    # Change json format from Python to Javascript because GraphQL can only recognize Javascript type of Json object.
    # Javascript Json object {key: "value"} ; Python Json object {"key":"value"}
    # TODO: Json_keys is just hardcoded. It should find keys in JSON object.
    json_keys = ["language", "structure", "pageTitle", "relativePagePath"]
    structures_str = str(content_structures)
    for key in json_keys:
        target_key = "\'"+key+"\'"
        structures_str = structures_str.replace(target_key, key)
    structures_str = structures_str.replace("\'", "\"")


    # AssumeRole
    sts_client=boto3.client('sts')
    assume_role=sts_client.assume_role(
        RoleArn=gql_assume_role,
        RoleSessionName='GraphQLExecuter'
        )
    access_key_id=assume_role['Credentials']['AccessKeyId']
    secret_access_key=assume_role['Credentials']['SecretAccessKey']
    session_token = assume_role['Credentials']['SessionToken']
    
    # # Setting Sigv4
    # uri = os.environ.get('AWS_CONTAINER_CREDENTIALS_RELATIVE_URI')
    # credential = ContainerMetadataFetcher().retrieve_uri(uri)
    # access_key_id = credential.get('AccessKeyId')
    # secret_access_key = credential.get('SecretAccessKey')
    # session_token = credential.get('Token')

    
    auth = AWS4Auth(access_key_id, secret_access_key, region, 'appsync', session_token=session_token)

    # Load latest version
    body = {"query":""""
                    query ListContents{	
                    listContents(
                            hostName: "%s",
                            limit: 1,
                            sortDirection: DESC
                    ) {
                            items{
                        hostName
                        version
                        }
                    } 
                    }