0.3.154 • Published 9 months ago

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

Weekly downloads
-
License
Apache-2.0
Repository
-
Last release
9 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

9 months ago

0.3.153

9 months ago

0.3.152

9 months ago

0.3.151

10 months ago

0.3.150

11 months ago

0.3.141

1 year ago

0.3.140

1 year ago

0.3.143

1 year ago

0.3.142

1 year ago

0.3.145

1 year ago

0.3.144

1 year ago

0.3.147

12 months ago

0.3.146

12 months ago

0.3.149

11 months ago

0.3.148

12 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

1 year ago

0.3.137

1 year ago

0.3.139

1 year 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

2 years ago

0.3.35

2 years ago

0.3.34

2 years 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