Coder Social home page Coder Social logo

twosdai / sbt-aws Goto Github PK

View Code? Open in Web Editor NEW

This project forked from awslabs/sbt-aws

0.0 1.0 0.0 1.2 MB

SaaS Builder Toolkit for AWS is a developer toolkit to implement SaaS best practices and increase developer velocity.

License: Apache License 2.0

Python 31.03% TypeScript 68.97%

sbt-aws's Introduction

SaaS Builder Toolkit for AWS

build status npm version

View on Construct Hub

The SaaS Builder Toolkit for AWS (SBT) is an open-source developer toolkit to implement SaaS best practices and increase developer velocity.

It offers a high-level object-oriented abstraction to define SaaS resources on AWS imperatively using the power of modern programming languages. Using SBT’s library of infrastructure constructs, you can easily encapsulate SaaS best practices in your SaaS application, and share it without worrying about boilerplate logic.

Currently, SBT is available in the following language:

Third-party Language Deprecation: language version is only supported until its EOL (End Of Life) shared by the vendor or community and is subject to change with prior notice.

Jump To: Developer Guide | API Reference | Getting Started | Getting Help | Contributing | Roadmap | More Resources


SBT is built on top of the AWS Cloud Development Kit (CDK). It offers a number of higher-order constructs (L2, L2.5 and L3) to short-circuit the time required to build SaaS applications. Specifically, SBT attempts to codify several control plane and application plane concepts into reusable components, promoting reuse and reducing boilerplate code.

Getting Started

For a detailed walkthrough, see the tutorial in the developer guide.

At a glance

Initialize a CDK project:

mkdir hello-cdk
cd hello-cdk
cdk init sample-app --language=typescript

This creates a sample project looking like this:

export class HelloCdkStack extends cdk.Stack {
  constructor(scope: cdk.App, id: string, props?: cdk.StackProps) {
    super(scope, id, props);

    const queue = new sqs.Queue(this, 'HelloCdkQueue', {
      visibilityTimeout: cdk.Duration.seconds(300)
    });

    const topic = new sns.Topic(this, 'HelloCdkTopic');

    topic.addSubscription(new subs.SqsSubscription(queue));
  }
}

Install or update SBT from npm (requires Node.js ≥ 14.15.0). We recommend using a version in Active LTS

npm install @cdklabs/sbt-aws

Add a sample control plane to your application. In the HelloCdkStack add the following:

const cp = new sbt.ControlPlane(this, 'control-plane', {
  idpName: 'COGNITO',
  systemAdminRoleName: 'SystemAdmin',
  systemAdminEmail: '[email protected]',
  applicationPlaneEventSource: 'sbt-application-plane-api',
  provisioningDetailType: 'Onboarding',
  controlPlaneEventSource: 'sbt-control-plane-api',
  onboardingDetailType: 'Onboarding',
  offboardingDetailType: 'Offboarding',
});

Deploy this to your account:

cdk deploy

Getting Help

The best way to interact with our team is through GitHub. You can open an issue and choose from one of our templates for bug reports, feature requests, documentation issues, or guidance.

You may also find help on these community resources:

Roadmap

The SBT for AWS Roadmap project board lets developers know about our upcoming features and priorities to help them plan how to best leverage the CDK and identify opportunities to contribute to the project.

Contributing

We welcome community contributions and pull requests. See CONTRIBUTING.md for information on how to set up a development environment and submit code.

More Resources

sbt-aws's People

Contributors

tobuck-aws avatar twosdai avatar madcommit avatar suhussai avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.