EICRUD

EICRUD

A CRUD/Authorization Node.js framework

11 followers

Eicrud is a typescript back-end framework for building secure and scalable web applications.
EICRUD gallery image
EICRUD gallery image
Free
Launch Team / Built With
Framer
Framer
Launch websites with enterprise needs at startup speeds.
Promoted

What do you think? …

Antoine Crosetti
Eicrud is CRUD/Authorization framework extending NestJS. It's a tool for building scalable, secure Node.js server applications in record time. Philosophy: Most of the time, a web app has some CRUD functionality as its base. Eicrud attempts to abstract this into a simple and easy-to-use API, so you don't have to re-write boilerplate code (controllers, validations, db queries...) every time you need a new service. By centering everything around CRUD entities, Eicrud provides a framework for writing complex applications that are easy to read, test and maintain. Eicrud also emphasizes "default security" for its components, where everything is forbidden until allowed.
Elizabeth Thompson
Okay, this sounds super useful. Got a couple questions - - Can Eicrud handle multiple databases? - Does it support real-time data sync? - How does it manage user roles and permissions? Looking forward to seeing it in action. Best of luck!
Antoine Crosetti
@elizabeththompson2 I appreciate the comment, thanks! 1. Eicrud can handle multiple databases, you can pass a custom MikroOrm instance to any service to be used instead of the global one. https://mikro-orm.io/docs/usage-... 2. Eicrud is database agnostic, but the supported DBs (mongoDB and postgreSQL) do support real-time data sync. 3. Eicrud is doing role-based access control on two types of resources. Entities: A class representing a DB table and the DTO to access it. Commands: A user-defined function paired with a DTO. Each role you create hold abilities defined with code, for example: user: { async defineAbility(can, cannot, ctx) { can('crud', 'profile', { owner: ctx.userId }); can('read', 'profile') // can read all profiles } } Which reads: users can modify their own profiles and read all the profiles. Note that "owner" is a property of the entity class. admin: { async defineAbility(can, cannot, ctx) { can('say_hello', 'profile', { msg: "world"}) } } This reads: Admins can call the command 'say_hello' (attached to the profile service) with the DTO argument "msg" equal to "world". https://docs.eicrud.com/security...
blank
Wow, @acrosett, this sounds super helpful! Love how Eicrud simplifies the process with a focus on CRUD. That’s gonna save us so much time on boilerplate code! And the emphasis on security is a major plus—definitely aligns with best practices these days. Can’t wait to see how it evolves!
Antoine Crosetti
@blankwebdev Thanks a lot!