ActiveQL

Domain Driven GrapqhQL API Development for NodeJS
From configuration to full fledged GrapqhQL API and generic Admin UI in minutes
Fast forward API development with convention over configuration and DRY

ActiveQL

Get Started

Install from ActiveQL generator
                
npx betterobjects/activeql-generator my-activeql

# install dependencies with "npm i" in 
# ./my-activeql/express
# ./my-activeql/angular

                
              
... or clone starter application
                
git clone https://github.com/betterobjects/activeql-starter.git  
# or preferably your forked repository

# install dependencies with "npm i" in 
# ./activeql-starter/express
# ./activeql-starter/angular
                
              
Configuration of your business domain
              
# edit ./express/activeql/domain-configuration/car.yml
enum:
  CarBrand:
    - Mercedes
    - Porsche
    - Audi 
    - BMW

entity:
  Car:
    attributes:
      licence: Key
      brand: CarBrand!
      color: String
      mileage: Int!
              
            
Run ActiveQL
                
cd ./express
npm run start
                
              
You're ready to go!

Your GraphQL API is up and running at http://locahost:4000/graphql

Chrome Schema

You can configure more enums, entities, relationships between them, seed data, permission handling and more and add custom queries and mutations.

The Admin UI is available at http://locahost:4200

Admin-UI Cars

Optionally you can use a generic Admin UI to create, read, update, delete entity items. You can customize any aspect how to display or edit the data.


Check out the Documentation to learn how to configure and build your GraphQL API and Admin UI.

API First

Domain Driven GraphQL

We believe GraphQL is a great way to expose your business domain to any client or 3rd party system. We also believe that it is a good idea to follow an API 1st approach - expressing your business entities and functionality as an API.
Everything else (from different user interfaces, integration with other systems to infrastructure task etc.) uses this API as a common understanding of your business domain.

Implementing a GraphQL API can be a cumbersome task though. You need to decide how to structure your schema, how to handle concepts like permissions, searching, sorting, paging, how to implement resolvers that read data from and write data to a database or similar, validate input, relationships etc. And implement it with quite some repetitive code.

ActiveQL supports this development with a highly oppionated generation of a GraphQL schema and resolvers. You can run a GraphQL API directly from the description of a business domain (mainly entities and its relations to each other). This gives you the the freedom to concentrate on the implementation of any non-default functionality on top of that. It does not restrict you in any way how implement your API, what libraries you prefer etc.

Read More

The ActiveQL Framework

Quick start

Start developing your GraphQL API and Admin UI with generated applications - up and running in under 2 minutes.

Design Principles

Oppionated basic API operations
Convention over Configuration
Don't repeat yourself

Easy To Customize

Concentrate of the non-standard functions of your API and Admin UI with full freedom. Use any coding-style or library you like.

Admin UI

Comes with a generic Admin UI - allowing to create, read, update and delete of data.

Standard Technology

Build on enterprise technologies like Express, Apollo or Angular

Generate UML

You can generate UML class diagrams (via [PlantUML](https://plantuml.com/en/class-diagram) directly from your configuration.

Features

Default CRUD operations

Generates default queries, mutations and generic UI for create, read, update and delete of domain entity items - incl. complex relationships between them

Fully Customizable

Change any aspect of schema generation, resolvers or Admin-UI. Custom code works seamlessly with generated functions.

Role based permission

Add role based permissions or restriction of data to your entities for any API or UI user

ActiveQL

Seed data generation

Easily add extensive test or seed data to your application - using sophisticated random or fake data.

Searching, Paging, Sorting

Customizable features like filtering or segmentation of data in your API

Default datastore

ActiveQL comes with zero installation document database and MongoDB datastore implementation. More databases or sources (mysql, Oracle, REST, ... ) can be added.

Services

Free forever

Open Source

  • Install on your machine
  • Embedd in your application
  • Community support
Start now

from $35 /mo

SaaS

  • Software as a Service
  • Email support
  • Regular updates
Contact us

from $999 /mo

Contract

  • Support from author
  • Regular updates
  • Negotioable terms
Contact us

Open Source

ActiveQL main development https://github.com/betterobjects/activeql ActiveQL-Server, Admin-UI, Documentation, Express and Angular Shell-Applications
ActiveQL application generator https://github.com/betterobjects/activeql‑generator Use this generator to easily generate your GraphQL API and Admin-UI powered by ActiveQL
ActiveQL starter application https://github.com/betterobjects/activeql‑starter Fork and clone this project to start developing your GraphQL API and Admin-UI powered by ActiveQL

Contact

Feel free to get in contact via

Email: activeql.735@betterobjects.de