The endaft-core
repo holds the core library source for endaft
backend solution templates.
A few of the things you'll get from using an endaft
backend solution template are:
- Guaranteed wire compatibility between frontend and backend.
- A thoroughly tested core library with 100% coverage
- Dependency injection for easier testing and control of underlying components
- Helpful design utilities like fake object generators and lispum text generators to facilitate the design phase
- A base contract with contextual state capabilities
- A Terraform deployment module for
- AWS API Gateway with Lambdas
- Cognito User Pool with OIDC, SAML, and Social login capabilities
- S3 website hosting behind an authorizer
- CloudWatch Logging
- Explicit, and wildcard, SSL management via ACM
- Route53 Record Management in the associated hosted zone
- An automated build pipeline that does everything you need to deploy
- A managed docker image to build AWS Lambdas directly in Amazon Linux 2
- Schema validated JSON configuration files with
- Lambda route validation and cross-checking for duplicates
- Customizable request transformations for your lambdas
- Cognito UI Customization (CSS and Images)
- Identity, Access, and Refresh token validity control
- Password complexity controls
- Log retention controls
Getting started is pretty straightforward. You'll need a handful of common tools. The first one is the endaft CLI. You can use endaft check
to check for all required tools and files, and endaft check --fix
to automatically address some of the requirements.
A typical usage example to install a backend and build it for deployment, assuming you don't have endaft
yet, might look like
dart pub global activate endaft
endaft install --template lambda-api
endaft build
That's it! This will provide you with a deployable backend Todo application, then dive in and customize the models and messages.
If you ever get into trouble deleting files and such, you migrate systems and don't have all the same tools yet. Just remember to run endaft check --fix
and it'll sort you out the best it can and tell what you need to do manually.