constructor()

in amplify-infra/lib/amplify-infra-stack.ts [11:59]


  constructor(scope: cdk.Construct, id: string, props?: cdk.StackProps) {
    super(scope, id, props);

    // Get context variables
    const fhir_server_url = this.node.tryGetContext('fhir_server_url');
    const auth_url = this.node.tryGetContext('auth_url');
    const client_id = this.node.tryGetContext('client_id');
    const api_key = this.node.tryGetContext('api_key');
    const amplify_branch = this.node.tryGetContext('amplify_branch') ?? "mainline";

    const fhirWorksOnAwsUiRepo = new Repository(
      this,
      "FhirWorksOnAwsUiRepo",
      {
        repositoryName: "fhir-works-on-aws-ui",
        description:
          "CodeCommit repository that will be used as the source repository for the FHIR Works on AWS UI React app and the CDK app",
      }
    );

    const amplifyApp = new amplify.App(this, "FhirWorksOnAwsUiApp", {
      sourceCodeProvider: new amplify.CodeCommitSourceCodeProvider({
        repository: fhirWorksOnAwsUiRepo,
      }),
      environmentVariables: {
        REACT_APP_FHIR_SERVER_URL: fhir_server_url,
        REACT_APP_AUTH_URL: auth_url,
        REACT_APP_CLIENT_ID: client_id,
        REACT_APP_API_KEY: api_key,
      },
    });
    amplifyApp.addBranch(amplify_branch);
    amplifyApp.addCustomRule(amplify.CustomRule.SINGLE_PAGE_APPLICATION_REDIRECT);

    new cdk.CfnOutput(this, 'AmplifyDomain',
      {
        value: `${amplify_branch}.${amplifyApp.defaultDomain}`,
        description: 'Amplify Domain',
        exportName: 'AmplifyDomain',
      });

    new cdk.CfnOutput(this, "CodeCommitRepo",
      {
        value: fhirWorksOnAwsUiRepo.repositoryName,
        description: "CodeCommit Repository name",
        exportName: "CodeCommitRepo",
      }
    );
  }