0.3.154 • Published 8 months ago

@amazon-codecatalyst/blueprint-component.environments v0.3.154

Weekly downloads
-
License
Apache-2.0
Repository
-
Last release
8 months ago
import {...} from '@amazon-codecatalyst/blueprint-component.environments'

The environment component can be found here.

The blueprint wizard is dynamically generated from the Options interface exposed through the [wizard|https://github.com/aws/codecatalyst-blueprints/wiki/Wizard]. Blueprints supports generating UI components from exposed types.

Example 1: Creating development environments

export interface Options extends ParentOptions {
    ...
    myNewEnvironment:  EnvironmentDefinition<{
        thisIsMyFirstAccountConnection: AccountConnection<{
            thisIsARole: Role<['lambda', 's3', 'dynamo']>;
        }>;
    }>;
}

This allows authors to deploy their applications to the cloud.

The above interface will generate a UI component that asks for a new Environment myNewEnvironment with a single account connection thisIsMyFirstAccountConnection and a role on that account connection thisIsARole with ['lambda', 's3', 'dynamo'] as the minimum required role capabilities. Since not all users will have account connections, it is important to check for the case where a user does not connect an account, and does not connect an account with a role either. This is reflected accurately in the type definition.

Roles can also be annotated with @inlinePolicies per the documentation here.

The environment component requires a name and an environmentType. The minimal required default shape looks like this:

{
  ...
  "myNewEnvironment": {
    "name": "myProductionEnvironment",
    "environmentType": "PRODUCTION"
  },
}

The UI component will then prompt the user for various fields and as they fill in those fields the blueprint will get a fully expanded shape. It is sometimes helpful to include the full 'mock' (see the below examples) in the defaults.json for testing and development purposes.

Example 2: A simple mock interface

{
    ...
    "thisIsMyEnvironment": {
        "name": "myProductionEnvironment",
        "environmentType": "PRODUCTION",
        "thisIsMySecondAccountConnection": {
            "id": "12345678910",
            "name": "my-account-connection-name",
            "secondAdminRole": {
                "arn": "arn:aws:iam::12345678910:role/ConnectedCodecatalystRole",
                "name": "ConnectedCodecatalystRole",
                "capabilities": [
                    "lambda",
                    "s3",
                    "dynamo"
                ]
            }
        }
    }
}

Example 3: A more complicated mock interface

export interface Options extends ParentOptions {
  /**
   * The name of an environment
   * @displayName This is a Environment Name
   * @collapsed
   */
  thisIsMyEnvironment: EnvironmentDefinition<{
    /**
     * blah blah blah some comments about the account that i'm deploying into
     * @displayName This account connection has an overriden name
     * @collapsed
     */
    thisIsMyFirstAccountConnection: AccountConnection<{
      /**
       * Blah blah some information about the role that I expect
       * e.g. here's a copy-pastable policy: [to a link]
       * @displayName This role has an overriden name
       */
      adminRole: Role<['admin', 'lambda', 's3', 'cloudfront']>;
      /**
       * Blah blah some information about the second role that I expect
       * e.g. here's a copy-pastable policy: [to a link]
       */
      lambdaRole: Role<['lambda', 's3']>;
    }>;
    /**
     * blah blah blah some comments about the account that i'm deploying into
     */
    thisIsMySecondAccountConnection: AccountConnection<{
      /**
         * Blah blah some information about the role that I expect
         * e.g. here's a copy-pastable policy: [to a link]
         */
      secondAdminRole: Role<['admin', 'lambda', 's3', 'cloudfront']>;
      /**
         * Blah blah some information about the second role that I expect
         * e.g. here's a copy-pastable policy: [to a link]
         */
      secondLambdaRole: Role<['lambda', 's3']>;
    }>;
  }>;
}

Example 4: A complete mock interface

{
  ...
  "thisIsMyEnvironment": {
    "name": "my-production-environment",
    "environmentType": "PRODUCTION",
    "thisIsMySecondAccountConnection": {
      "id": "12345678910",
      "name": "my-connected-account",
      "secondAdminRole": {
        "name": "LambdaCodecatalystRole",
        "arn": "arn:aws:iam::12345678910:role/LambdaCodecatalystRole",
        "capabilities": [
          "admin",
          "lambda",
          "s3",
          "cloudfront"
        ]
      },
      "secondLambdaRole": {
        "name": "LambdaCodecatalystRole",
        "arn": "arn:aws:iam::12345678910:role/LambdaCodecatalystRole",
        "capabilities": [
          "lambda",
          "s3"
        ]
      }
    },
    "thisIsMyFirstAccountConnection": {
      "id": "12345678910",
      "name": "my-connected-account",
      "adminRole": {
        "name": "LambdaCodecatalystRole",
        "arn": "arn:aws:iam::12345678910:role/LambdaCodecatalystRole",
        "capabilities": [
          "admin",
          "lambda",
          "s3",
          "cloudfront"
        ]
      },
      "lambdaRole": {
        "name": "LambdaCodecatalystRole",
        "arn": "arn:aws:iam::12345678910:role/LambdaCodecatalystRole",
        "capabilities": [
          "lambda",
          "s3"
        ]
      }
    }
  },
}
0.3.154

8 months ago

0.3.153

9 months ago

0.3.152

9 months ago

0.3.151

9 months ago

0.3.150

10 months ago

0.3.141

12 months ago

0.3.140

12 months ago

0.3.143

12 months ago

0.3.142

12 months ago

0.3.145

11 months ago

0.3.144

12 months ago

0.3.147

11 months ago

0.3.146

11 months ago

0.3.149

11 months ago

0.3.148

11 months ago

0.3.130

1 year ago

0.3.132

1 year ago

0.3.131

1 year ago

0.3.134

1 year ago

0.3.133

1 year ago

0.3.136

1 year ago

0.3.135

1 year ago

0.3.138

12 months ago

0.3.137

1 year ago

0.3.139

12 months ago

0.3.121

1 year ago

0.3.120

1 year ago

0.3.123

1 year ago

0.3.122

1 year ago

0.3.125

1 year ago

0.3.124

1 year ago

0.3.127

1 year ago

0.3.126

1 year ago

0.3.129

1 year ago

0.3.128

1 year ago

0.3.119

1 year ago

0.3.118

1 year ago

0.3.117

1 year ago

0.3.116

1 year ago

0.3.115

1 year ago

0.3.114

1 year ago

0.3.112

1 year ago

0.3.113

1 year ago

0.3.111

1 year ago

0.3.110

1 year ago

0.3.109

1 year ago

0.3.108

1 year ago

0.3.107

1 year ago

0.3.105

1 year ago

0.3.106

1 year ago

0.3.103

1 year ago

0.3.104

1 year ago

0.3.101

1 year ago

0.3.102

1 year ago

0.3.100

1 year ago

0.3.99

1 year ago

0.3.98

1 year ago

0.3.97

1 year ago

0.3.96

1 year ago

0.3.95

1 year ago

0.3.94

1 year ago

0.3.93

1 year ago

0.3.92

1 year ago

0.3.91

1 year ago

0.3.90

1 year ago

0.3.89

1 year ago

0.3.88

1 year ago

0.3.87

1 year ago

0.3.86

1 year ago

0.3.85

1 year ago

0.3.84

1 year ago

0.3.82

1 year ago

0.3.81

1 year ago

0.3.79

1 year ago

0.3.80

1 year ago

0.3.78

1 year ago

0.3.77

1 year ago

0.3.76

1 year ago

0.3.75

1 year ago

0.3.74

1 year ago

0.3.73

1 year ago

0.3.72

1 year ago

0.3.71

1 year ago

0.3.70

1 year ago

0.3.69

1 year ago

0.3.68

1 year ago

0.3.67

1 year ago

0.3.66

1 year ago

0.3.65

1 year ago

0.3.64

1 year ago

0.3.63

1 year ago

0.3.62

1 year ago

0.3.61

1 year ago

0.3.60

1 year ago

0.3.59

1 year ago

0.3.58

1 year ago

0.3.57

1 year ago

0.3.53

1 year ago

0.3.52

1 year ago

0.3.55

1 year ago

0.3.54

1 year ago

0.3.51

1 year ago

0.3.50

1 year ago

0.3.49

1 year ago

0.3.48

1 year ago

0.3.47

1 year ago

0.3.46

1 year ago

0.3.42

1 year ago

0.3.41

1 year ago

0.3.45

1 year ago

0.3.44

1 year ago

0.3.43

1 year ago

0.3.40

1 year ago

0.3.39

1 year ago

0.3.38

1 year ago

0.3.37

1 year ago

0.3.36

1 year ago

0.3.35

1 year ago

0.3.34

1 year ago

0.3.33

2 years ago

0.3.31

2 years ago

0.3.32

2 years ago

0.3.30

2 years ago

0.3.29

2 years ago

0.3.28

2 years ago

0.3.27

2 years ago

0.3.26

2 years ago

0.3.25

2 years ago

0.3.24

2 years ago

0.3.23

2 years ago

0.3.22

2 years ago

0.3.21

2 years ago

0.3.20

2 years ago

0.3.19

2 years ago

0.3.18

2 years ago

0.3.17

2 years ago

0.3.16

2 years ago

0.3.15

2 years ago

0.3.14

2 years ago

0.3.13

2 years ago

0.3.12

2 years ago

0.3.11

2 years ago

0.3.10

2 years ago

0.3.9

2 years ago

0.3.8

2 years ago

0.3.7

2 years ago

0.3.6

2 years ago

0.3.5

2 years ago

0.3.4

2 years ago

0.3.3

2 years ago

0.3.2

2 years ago

0.3.1

2 years ago

0.3.0

2 years ago

0.0.0

2 years ago