project | Opinionated CDK "framework" for managing configuration, naming, tagging, etc

 by   alma-cdk TypeScript Version: v0.0.21 License: Apache-2.0

kandi X-RAY | project Summary

kandi X-RAY | project Summary

project is a TypeScript library. project has no bugs, it has no vulnerabilities, it has a Permissive License and it has low support. You can download it from GitHub.

Work-in-Progress: Breaking changes may occur at any given point durin v0.x.
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              project has a low active ecosystem.
              It has 2 star(s) with 0 fork(s). There are 3 watchers for this library.
              OutlinedDot
              It had no major release in the last 12 months.
              project has no issues reported. There are no pull requests.
              It has a neutral sentiment in the developer community.
              The latest version of project is v0.0.21

            kandi-Quality Quality

              project has no bugs reported.

            kandi-Security Security

              project has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.

            kandi-License License

              project is licensed under the Apache-2.0 License. This license is Permissive.
              Permissive licenses have the least restrictions, and you can use them in most projects.

            kandi-Reuse Reuse

              project releases are available to install and integrate.
              Installation instructions, examples and code snippets are available.

            Top functions reviewed by kandi - BETA

            kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
            Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of project
            Get all kandi verified functions for this library.

            project Key Features

            No Key Features are available at this moment for project.

            project Examples and Code Snippets

            No Code Snippets are available at this moment for project.

            Community Discussions

            No Community Discussions are available at this moment for project.Refer to stack overflow page for discussions.

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install project

            Steps required to define a environmental project resources; At first, it might seem complex but once you get into the habbit of defining your projects this way it starts to make sense:.
            Choose your Account Strategy
            Initialize a new Project instead of cdk.App: // bin/app.ts import { Project, AccountStrategy } from '@alma-cdk/project'; const project = new Project({ // Basic info, you could also read these from package.json if you want name: 'my-cool-project', author: { organization: 'Acme Corp', name: 'Mad Scientists', email: 'mad.scientists@acme.example.com', }, // If not set, defaults to one of: $CDK_DEFAULT_REGION, $AWS_REGION or us-east-1 defaultRegion: 'eu-west-1', // Configures the project to use 2 AWS accounts (recommended) accounts: AccountStrategy.two({ dev: { id: '111111111111', config: { // whatever you want here as [string]: any baseDomain: 'example.net', }, }, prod: { id: '222222222222', config: { // whatever you want here as [string]: any baseDomain: 'example.com', }, }, }), })
            Define a stack which extends SmartStack with resources: // lib/my-stack.ts import { Construct } from 'constructs'; import { StackProps, RemovalPolicy } from 'aws-cdk-lib'; import { SmartStack, Name, UrlName, PathName, EC } from '@alma-cdk/project'; export class MyStack extends SmartStack { constructor(scope: Construct, id: string, props?: StackProps) { super(scope, id, props); new dynamodb.Table(this, 'Table', { removalPolicy: EC.isStable(this) ? RemovalPolicy.RETAIN : RemovalPolicy.DESTROY, tableName: Name.it(this, 'MyTable'), partitionKey: { type: dynamodb.AttributeType.STRING, name: 'pk', }, // StagingMyTable }); new events.EventBus(this, 'EventBus', { eventBusName: Name.withProject(this, 'MyEventBus'), // MyCoolProjectStagingMyEventBus }); new s3.Bucket(this, 'Bucket', { removalPolicy: EC.isStable(this) ? RemovalPolicy.RETAIN : RemovalPolicy.DESTROY, autoDeleteObjects: EC.isStable(this) ? false : true, bucketName: UrlName.globally(this, 'MyBucket'), // acme-corp-my-cool-project-feature-foo-bar-my-bucket }); new ssm.StringParameter(this, 'Parameter', { stringValue: 'Foo', tier: ssm.ParameterTier.ADVANCED, parameterName: PathName.withProject(this, 'MyNamespace/MyParameter'), // /MyCoolProject/Staging/MyNamespace/MyParameter }); } }
            Define a new environmental which extends EnvironmentWrapper and initialize all your environmental SmartStack stacks within: // lib/environment.ts import { EnvironmentWrapper } from '@alma-cdk/project'; import { MyStack } from './my-stack'; export class Environment extends EnvironmentWrapper { constructor(scope: Construct) { super(scope); new MyStack(this, 'MyStack', { description: 'This is required' }); } } Resulting Stack properties (given environment=staging): Property Example value stackName "MyCoolProject-Environment-Staging-MyExampleStack" terminationProtection true env.account "111111111111" env.region "eu-west-1" Resulting Tags for the Stack and its resources (given environment=staging): Property Example value Account dev Environment staging Project my-cool-project Author Mad Scientists Organization Acme Corp Contact mad.scientists@acme.example.com
            Finally initialize the environment with the Project scope: // bin/app.ts import { Project, Accounts } from '@alma-cdk/project'; import { Environment } from '../lib/environment'; const project = new Project({/* removed for brevity, see step 1 */}) new Environment(project);

            Support

            For any new features, suggestions and bugs create an issue on GitHub. If you have any questions check and ask questions on community page Stack Overflow .
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
            CLONE
          • HTTPS

            https://github.com/alma-cdk/project.git

          • CLI

            gh repo clone alma-cdk/project

          • sshUrl

            git@github.com:alma-cdk/project.git

          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link