owc

a lightweight web service framework for aws lambda

Usage no npm install needed!

<script type="module">
  import owc from 'https://cdn.skypack.dev/owc';
</script>

README

A lightweight MVC web service framework for AWS lambda

Contents:

Release Notes:

1.0.21

  • Added S3 support

  • Added "owc.aws.invoke" method to invoke any methods in aws-sdk

1.0.19

  • Added DynamoDB support

  • Added atomic operations for redis

  • Added unit test scripts for redis and dynamodb

1. Installation

Please install owc-cli to generate project, modules, models, etc. Please refer to this link:

https://www.npmjs.com/package/owc-cli

2. File structure

3. Model

Once you generate a model for a table, you are able to query against database like below:

let users = await User.find().where({id : 10, status : 1}).all();

let user = await User.findByPk(10);

let user = await User.find().where({id:10}).one();

let ret = await user.save();

4. Database

owc supports mysql and mysql compatible aurora database. It also allows you to set up master and slaves database.

You can run raw sql by passing sql commands and bind parameters into below functions:

owc.db.query(sql, bind, transaction = null)

owc.db.queryAll(sql, bind, transaction = null)

5. Cache

owc supports memcached and redis. Redis also supports master and slaves mode.

6. ElasticSearch

owc can create elasticsearch model for each table in mysql database. You can query elasticsearch like a database.

For example, you can search like below:

let users = await User.find().where({id : 10, status : 1}).all();

6. AWS

OWC added built in libraries for some AWS services:

  • Cognito (Admin actions)
  • DynamoDB (put item, get item, describe table, delete item, update item, query and scan table)
  • ParameterStore (put parameter, get parameter, get parameters, delete parameter)
  • SecretsManager (create secrets, get secrets)
  • SimpleEmailService (send email without attachment)
  • SimpleQueueService (push message to queue, delete message)
  • S3
  • You can still use "owc.aws.invoke" to invoke any services that haven't been implemented.

7. Log

owc supports winston and console log