All Projects → daptin → Daptin

daptin / Daptin

Licence: other
Daptin - Backend As A Service - GraphQL/JSON-API Headless CMS

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Daptin

Pop
Monorepo of the PoP project, including: a server-side component model in PHP, a GraphQL server, a GraphQL API plugin for WordPress, and a website builder
Stars: ✭ 160 (-86.61%)
Mutual labels:  graphql, graphql-server, graphql-api, headless-cms
Graphqlize
A Clojure & JVM library for developing GraphQL API instantly from Postgres and MySQL databases
Stars: ✭ 240 (-79.92%)
Mutual labels:  graphql, graphql-server, graphql-api
Graphql
Haskell GraphQL implementation
Stars: ✭ 36 (-96.99%)
Mutual labels:  graphql, graphql-server, graphql-api
Morpheus Graphql
Haskell GraphQL Api, Client and Tools
Stars: ✭ 285 (-76.15%)
Mutual labels:  graphql, graphql-server, graphql-api
Grial
A Node.js framework for creating GraphQL API servers easily and without a lot of boilerplate.
Stars: ✭ 194 (-83.77%)
Mutual labels:  graphql, graphql-server, graphql-api
Rails Devise Graphql
A Rails 6 boilerplate to create your next Saas product. Preloaded with graphQL, devise, JWT, CanCanCan, RailsAdmin, Rubocop, Rspec, i18n and more.
Stars: ✭ 199 (-83.35%)
Mutual labels:  graphql, graphql-server, graphql-api
Wp Graphql
🚀 GraphQL API for WordPress
Stars: ✭ 3,097 (+159.16%)
Mutual labels:  graphql, graphql-server, graphql-api
Storefront Api
Storefront GraphQL API Gateway. Modular architecture. ElasticSearch included. Works great with Magento1, Magento2, Spree, OpenCart, Pimcore and custom backends
Stars: ✭ 180 (-84.94%)
Mutual labels:  graphql, graphql-server, graphql-api
Parse Server
API server module for Node/Express
Stars: ✭ 19,165 (+1503.77%)
Mutual labels:  graphql, graphql-server, graphql-api
Typegql
Create GraphQL schema with TypeScript classes.
Stars: ✭ 415 (-65.27%)
Mutual labels:  graphql, graphql-server, graphql-api
Graphql Engine
Blazing fast, instant realtime GraphQL APIs on your DB with fine grained access control, also trigger webhooks on database events.
Stars: ✭ 24,845 (+1979.08%)
Mutual labels:  graphql, graphql-server, graphql-api
Graphql Spqr Spring Boot Starter
Spring Boot 2 starter powered by GraphQL SPQR
Stars: ✭ 187 (-84.35%)
Mutual labels:  graphql, graphql-server, graphql-api
Gqlify
[NOT MAINTAINED]An API integration framework using GraphQL
Stars: ✭ 182 (-84.77%)
Mutual labels:  graphql, graphql-server, graphql-api
36 Graphql Concepts
📜 36 concepts every GraphQL developer should know.
Stars: ✭ 209 (-82.51%)
Mutual labels:  graphql, graphql-server, graphql-api
Graphql2rest
GraphQL to REST converter: automatically generate a RESTful API from your existing GraphQL API
Stars: ✭ 181 (-84.85%)
Mutual labels:  graphql, graphql-server, graphql-api
Unite Cms
Really flexible headless CMS, built on top of Symfony and GraphQL.
Stars: ✭ 242 (-79.75%)
Mutual labels:  graphql, content-management, headless-cms
Hangzhou Graphql Party
杭州 GraphQLParty 往期记录(slide,照片,预告,视频等)
Stars: ✭ 142 (-88.12%)
Mutual labels:  graphql, graphql-server, graphql-api
Graph Node
Graph Node indexes data from blockchains such as Ethereum and serves it over GraphQL
Stars: ✭ 884 (-26.03%)
Mutual labels:  graphql, graphql-server, graphql-api
Spikenail
A GraphQL Framework for Node.js
Stars: ✭ 358 (-70.04%)
Mutual labels:  graphql, graphql-server, graphql-api
Api Platform
Create REST and GraphQL APIs, scaffold Jamstack webapps, stream changes in real-time.
Stars: ✭ 7,144 (+497.82%)
Mutual labels:  graphql, graphql-server, graphql-api


Daptin
Daptin

Travis Build Status Build Status Wercker status

Software License Go Report Card Go Doc

Codecov branch Release

Daptin is a server exposing HTTP APIs for web and application developers providing to talk to database and persistent storage.

  • Consistent API with authentication and authorization for database table and metadata

  • User management and user group management API with row and table level ownership

  • Stateless and easily scalable

  • Dadadash : https://github.com/daptin/dadadash/

    • docker run -p 8080:8080 daptin/dadadash

Go down if you are looking for headless CMS

 new workspace  worksapce view
 new base  new app item menu
 document editor  spreadsheet editor
 data tables  file browser
 calendar  File browser

DownloadDocumentationCommunity

The most powerful ready to use data and services API server.

  • Define data tables and relations from YAML or Web dashboard UI
    • Middleware for handling data normalizations and conformations
    • Create indexes, constraints on columns
    • Column can be have images/video/audio/blobs attachments, stored appropriately in #cloudstore
  • Authentication and Authorization on APIs
    • Add users and user groups
    • RWX based permission system for rows and tables
    • JWT token with configurable expiry time
    • User sign in/sign up/password reset flows
  • JSON API and GraphQL API
    • JSONAPI.org complaint endpoints
    • GraphQL endpoint with Data/Query and Mutations available
    • Pagination and filtering using page number or cursor based
    • Fetch relationships in a single call
  • Cloud storage
    • Connect to over 30 storage providers (localhost/HTTP/FTP/GDrive/Dropbox/S3 and many more)
    • Manage files using daptin actions
    • Automated 1 hour sync scheduled
  • Static and HUGO sites
    • Host site on multiple domains
    • Inbuilt HTTPS certificate generation with lets-encrypt
    • Web file browser and FTP access (disabled by default)
  • Action workflows & 3rd party API integration
    • Supports v2/v3 openapi in yaml or json format
    • Call any 3rd party API by importing OpenAPI Spec
  • Email server
    • Enable SMTPS and IMAPS services and use daptin as your daily email provider
    • Multi hostname mail server
    • Multiple email accounts, database backed email storage

FeaturesGetting Started

Why use daptin

Easily consume the following features on any device

Javascript/Typescript Client

https://github.com/daptin/daptin-js-client

Starter kit: https://github.com/daptin/vue_typescript_starter_kit

Define Schema

Find

Get By Id

Create

Delete

Delete relations

List relations

  • Versioning of the data
  • Authentication and authorization
  • JSON API endpoint
  • GraphQL endpoint
  • Actions and integrations with external services

Get Started

Features

  • Declarative Data Modeling system
    • Unique/Primary keys
    • Single/Multiple Relation
    • Normalizations and conformations
    • Scripting using JS
  • CRUD JSON APIs' for all tables
    • Create, Read, Update, Delete
    • Sort, filter, search, group by single/multiple columns
    • Authentication and Group based authorization
    • Pluggable middleware, conformations and normalizations
    • Trigger actions/pipelines
  • GraphQL APIs
    • Read and Mutations APIs for all tables
    • One level of relationship fetching
  • Client SDK libraries for all platforms
  • Rich data types
    • Column types ranging from number to json to file/image assets
  • Sub sites hosting
    • Expose multiple websites from a single instance
    • Connect multiple domains/sub-domains
  • Pluggable Social Auth, Basic Auth or Username/Password Auth
  • Cloud storage
    • Connect to external cloud storage services seamlessly
    • Pull data/Push data
  • Action APIs
    • Define work-flows
    • Expose custom endpoints for other services
  • Ready to use web dashboard
    • Responsive to desktop, mobile and table
  • Cross platform
    • Windows, Mac, Linux and more

APIs

Users

Asset and file storage

Sub-sites

Client library

Ruby Python Javascript
Typescript PHP Dart
.NET Java iOS
Elixir R Perl

API spec RAML

OpenAPI V3 spec is auto generated for each endpoint exposed. This can be use to generate further documentation and clients.

YAML API documentation

curl http://localhost/apispec.yaml

{
    "data": [
        {
            "type": "tableName",
            "attributes": {
                "col1": "",
                "col2": "",
            },
            "id": "",
        }
    ],
    "included": [
        {
            "type": "tableName",
            "attributes": {},
            "id": "",
        },
        .
        .
    ],
    "links": {
        "current_page": 1,
        "from": 0,
        "last_page": 100,
        "per_page": 50,
        "to": 50,
        "total": 5000
    }
}

Web Dashboard

Sign up and Sign in Create entity and add item Generate random data to show tables

Why Daptin?

Daptin was to help build faster, more capable APIs over your data that worked across for all types of frontend.

While Daptin primarily targeted Web apps, the emergence of Android and iOS Apps as a rapidly growing target for developers demanded a different approach for building the backend. With developers classic use of traditional frameworks and bundling techniques, we struggle to invest enough time in the business and frontend demands for all sorts of Apps that provide consistent and predictable APIs which perform equally well on fast and slow load, across a diversity of platforms and devices.

Additionally, framework fragmentation had created a APIs development interoperability nightmare, where backend built for one purpose needs a lot of boilerplate and integration with the rest of the system, in a consistent way.

A component system around JSON APIs offered a solution to both problems, allowing more time available to be invested into frontend and business building, and targeting a standards-based JSON/Entity models that all frontends can use.

However, JSON APIs for data manipulation by themselves weren't enough. Building apps required a lot of custom actions, workflows, data integrity, event subscription, integration with external services that were previously locked up inside of traditional web frameworks. Daptin was built to pull these features out of traditional frameworks and bring them to the fast emerging JSON API standard in an automated way.

Getting started

  • Deploy instance of Daptin on a server
  • Upload JSON/YAML/TOML/HCL file which describe your entities (or use marketplace to get started)
  • or upload XLS file to create entities and upload data
  • Become Admin of the instance (until then its a open for access, that's why you were able to create an account)

Tech Goals

  • Zero config start (sqlite db for no-config install, mysql/postgres is recommended for serious use)
  • A closely knit set of functionality which work together
  • Completely configurable at runtime
  • Stateless (Horizontally scalable)
  • Piggyback on used/known standards
  • Runnable on all types on devices
  • Cross platform app using qt (very long term goal. A responsive website for now.)

Road Map

  • [x] Normalised Db Design from JSON schema upload
  • [x] Json Api, with CRUD and Relationships
  • [x] OAuth Authentication, inbuilt jwt token generator (setups up secret itself)
  • [x] Authorization based on a slightly modified linux FS permission model
  • [x] Objects and action chains
  • [x] State tracking using state machine
  • [x] Data connectors -> Incoming/Outgoing data
  • [x] Plugin system -> Grow the system according to your needs
  • [x] Native support for different data types (geo location/time/colors/measurements)
  • [x] Configurable intelligent Validation for data in the APIs
  • [x] Pages/Sub-sites -> Create a sub-site for a target audience
  • [x] Define events all around the system
  • [x] Data conversion/exchange/transformations
  • [x] Live editor for subsites - grapesjs
  • [x] Store connectors for storing big files/subsites - rclone
  • [x] Market place to allow plugins/extensions to be installed
  • [x] Online entity designer
  • [x] Excel to entity identification
  • [x] CSV to entity identification

Documentation

Golang Dependencies list

DEPENDENCY REPOURL LICENSE
github.com/GeertJohan/go.rice https://github.com/GeertJohan/go.rice bsd-2-clause
github.com/artpar/go-guerrilla https://github.com/artpar/go-guerrilla MIT
github.com/gin-gonic/gin https://github.com/gin-gonic/gin MIT
github.com/sirupsen/logrus https://github.com/sirupsen/logrus MIT
github.com/Masterminds/squirrel https://github.com/Masterminds/squirrel Other
github.com/PuerkitoBio/goquery https://github.com/PuerkitoBio/goquery bsd-3-clause
github.com/anthonynsimon/bild https://github.com/anthonynsimon/bild MIT
github.com/artpar/api2go https://github.com/artpar/api2go MIT
github.com/artpar/api2go-adapter https://github.com/artpar/api2go-adapter MIT
github.com/artpar/go-imap https://github.com/artpar/go-imap MIT
github.com/artpar/go.uuid https://github.com/artpar/go.uuid MIT
github.com/artpar/parsemail https://github.com/artpar/parsemail MIT
github.com/artpar/rclone https://github.com/artpar/rclone MIT
github.com/artpar/stats https://github.com/artpar/stats MIT
github.com/bjarneh/latinx https://github.com/bjarneh/latinx bsd-3-clause
github.com/emersion/go-sasl https://github.com/emersion/go-sasl MIT
github.com/julienschmidt/httprouter https://github.com/julienschmidt/httprouter bsd-3-clause
golang.org/x/net/context https://go.googlesource.com/net
github.com/advance512/yaml https://github.com/advance512/yaml Other
golang.org/x/crypto/bcrypt https://go.googlesource.com/crypto
github.com/alexeyco/simpletable https://github.com/alexeyco/simpletable MIT
github.com/araddon/dateparse https://github.com/araddon/dateparse MIT
github.com/artpar/conform https://github.com/artpar/conform Other
github.com/artpar/resty https://github.com/artpar/resty MIT
github.com/emersion/go-message https://github.com/emersion/go-message MIT
github.com/go-playground/locales https://github.com/go-playground/locales MIT
github.com/go-playground/universal-translator https://github.com/go-playground/universal-translator MIT
golang.org/x/oauth2 https://go.googlesource.com/oauth2
gopkg.in/go-playground/validator.v9 https://github.com/go-playground/validator MIT
golang.org/x/net/websocket https://go.googlesource.com/net
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].