All Projects → JaneJeon → express-objection-starter

JaneJeon / express-objection-starter

Licence: MIT license
an opinionated, production-ready, isomorphic express/knex/objection starter with centralized configuration

Programming Languages

javascript
184084 projects - #8 most used programming language
HTML
75241 projects

Projects that are alternatives of or similar to express-objection-starter

objection-authorize
isomorphic, "magical" authorization integration with Objection.js 🎉
Stars: ✭ 71 (+273.68%)
Mutual labels:  acl, rbac, objection
Think Casbin
专为ThinkPHP定制的Casbin的扩展包,Casbin是一个功能强大,高效的开源访问控制库。
Stars: ✭ 138 (+626.32%)
Mutual labels:  acl, rbac
Laratrust
Handle roles and permissions in your Laravel application
Stars: ✭ 1,799 (+9368.42%)
Mutual labels:  acl, rbac
Casbin Server
Casbin as a Service (CaaS)
Stars: ✭ 171 (+800%)
Mutual labels:  acl, rbac
rbac-tool
Rapid7 | insightCloudSec | Kubernetes RBAC Power Toys - Visualize, Analyze, Generate & Query
Stars: ✭ 546 (+2773.68%)
Mutual labels:  acl, rbac
Node Casbin
An authorization library that supports access control models like ACL, RBAC, ABAC in Node.js and Browser
Stars: ✭ 1,757 (+9147.37%)
Mutual labels:  acl, rbac
Think Authz
An authorization library that supports access control models like ACL, RBAC, ABAC in ThinkPHP 6.0 .
Stars: ✭ 155 (+715.79%)
Mutual labels:  acl, rbac
Openstack Policy Editor
A Casbin Policy Editor for OpenStack
Stars: ✭ 28 (+47.37%)
Mutual labels:  acl, rbac
Chi Authz
chi-authz is an authorization middleware for Chi
Stars: ✭ 248 (+1205.26%)
Mutual labels:  acl, rbac
Rbac
Hierarchical Role-Based Access Control for Node.js
Stars: ✭ 254 (+1236.84%)
Mutual labels:  acl, rbac
typescript-orm-benchmark
⚖️ ORM benchmarking for Node.js applications written in TypeScript
Stars: ✭ 106 (+457.89%)
Mutual labels:  knex, objection
Casbin Cpp
An authorization library that supports access control models like ACL, RBAC, ABAC in C/C++
Stars: ✭ 113 (+494.74%)
Mutual labels:  acl, rbac
Jcasbin
An authorization library that supports access control models like ACL, RBAC, ABAC in Java
Stars: ✭ 1,335 (+6926.32%)
Mutual labels:  acl, rbac
Accesscontrol
Role and Attribute based Access Control for Node.js
Stars: ✭ 1,723 (+8968.42%)
Mutual labels:  acl, rbac
Casbin
An authorization library that supports access control models like ACL, RBAC, ABAC in Golang
Stars: ✭ 10,872 (+57121.05%)
Mutual labels:  acl, rbac
Negroni Authz
negroni-authz is an authorization middleware for Negroni
Stars: ✭ 152 (+700%)
Mutual labels:  acl, rbac
rbac
Simple RBAC/ACL for Laravel 8 caching and permission groups.
Stars: ✭ 43 (+126.32%)
Mutual labels:  acl, rbac
Ngx Permissions
Permission and roles based access control for your angular(angular 2,4,5,6,7,9+) applications(AOT, lazy modules compatible
Stars: ✭ 749 (+3842.11%)
Mutual labels:  acl, rbac
Php Casbin
An authorization library that supports access control models like ACL, RBAC, ABAC in PHP .
Stars: ✭ 865 (+4452.63%)
Mutual labels:  acl, rbac
Caddy Authz
Caddy-authz is a middleware for Caddy that blocks or allows requests based on access control policies.
Stars: ✭ 221 (+1063.16%)
Mutual labels:  acl, rbac

Welcome to express-objection-starter (WIP) 👋

GitHub Actions Coverage Maintainability Dependencies devDependencies Vulnerabilities Dependabot Status License Surge Docs Netlify Docs Standard Prettier Deploy to Heroku

an opinionated, production-ready, isomorphic express/knex/objection starter with centralized configuration

🏠 Homepage

Why?

While node.js makes it easy to hack together an express server quickly, it's hard to actually build a production-ready, secure, scalable solution. Furthermore, when building a web app that has a backend and a frontend component, you end up having to repeat almost all of the logic.

Thus, based on my experience building production-level systems, I built a comprehensive express.js template with:

  • a centralized hierarchical configuration system that can be easily overwritten
  • sensible defaults that can suit any production environment - PaaS, containers, behind proxy/CDN, etc, with support for production logging and distributed tracing
  • a proper ORM and query builder (Objection.js + knex) to allow working with relational databases in an ergonomic way without resulting in N+1
  • extensible relational models with tons of features (e.g. validation and pagination) baked-in
  • secure authentication system with Active Session management features
  • fine-grained role-based authorization to control access down to the field level, that seamlessly integrates with the query builder
  • a fast, distributed, fault-tolerant, class-based, and (optionally) rate-limited queuing system that takes advantage of multi-core CPUs
  • fully-loaded development environment with automated testing/migration/dependencies/linting via git & npm hooks, development-purpose mail server, and even automatic type generation!
  • a scalable process model (both for the server and the worker) that is easy to maintain once in production
  • easy & mobile-optimized email templating w/ a custom MJML -> hbs -> node solution

Install

When you create a GitHub repo, you can either select express-objection-starter as the starting template, or you can start by cloning this repo:

git clone https://github.com/JaneJeon/express-objection-starter.git
rm -rf .git

Run tests

yarn test

Author

👤 Jane Jeon

🤝 Contributing

Contributions, issues and feature requests are welcome!
Feel free to check issues page.

Show your support

Give a ⭐️ if this project helped you!

📝 License

Copyright © 2019 Jane Jeon.
This project is MIT licensed.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].