Giter Club home page Giter Club logo

daptin / daptin Goto Github PK

View Code? Open in Web Editor NEW
1.8K 47.0 111.0 139.79 MB

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

Home Page: https://daptin.github.io/daptin/

License: GNU Lesser General Public License v3.0

Go 95.10% JavaScript 2.31% HTML 0.94% CSS 0.58% Makefile 0.62% Shell 0.32% Dockerfile 0.03% Python 0.05% Lua 0.05% Procfile 0.01%
content-management headless-cms static-site graphql graphql-server graphql-api json-api crud-apis cloud-storage

daptin's Introduction

Daptin - Headless CMS for the 100x Developers

Take the API overhead out of your brain with Daptin. Complete granular access to your data over the network. A single binary to power up your application.

                ┌──────────────────┐         ┌──────────────────┐        ┌────────────────┐
                │                  │         │                  │        │                │
                │ OpenAPI 2/3      │         │  Database        │        │  Cloudstore    │
                │                  │         │                  │        │                │
                └────────▲─────────┘         └───────▲──────────┘        └───────▲────────┘
                         │                           │                           │
                         │                           │                           │
                         │                           │                           │
                         │                           │                           │
                         │                           │                           │
                         │                           │                           │
                         │                           │                           │
                         └─────────────────────────┬─┴───────────────────────────┘
                                                   │
                                                   │
                                                   │
                                                   │
                                                   │
                                                   │
                                                   │
                                        ┌──────────┴───────────┐
  ┌─────────────────┐                   │                      │                     ┌────────────────┐
  │                 │                   │                      │                     │                │
  │  Actions        ◄───────────────────┤    Daptin            ├─────────────────────► SMTP/IMAP      │
  │                 │                   │                      │                     │                │
  └─────────────────┘                   │                      │                     └────────────────┘
                                        └──────────┬───────────┘
                                                   │
                                                   │
                                                   │
                                                   │
                                                   │
                                                   │
                                                   │
                                                   │
                                                   │
                                                   │
          ┌─────────────────────────┬──────────────┼──────────────────┬──────────────────────────────┐
          │                         │              │                  │                              │
          │                         │              │                  │                              │
          │                         │              │                  │                              │
          │                         │              │                  │                              │
┌─────────▼────────┐        ┌───────▼───────┐      │         ┌────────▼───────┐             ┌────────▼─────────┐
│                  │        │               │      │         │                │             │                  │
│  YJS Live Collab │        │  JSONAPI.org  │      │         │ GraphQL        │             │  WebSocket       │
│                  │        │               │      │         │                │             │                  │
└──────────────────┘        └───────────────┘      │         └────────────────┘             └──────────────────┘
                                                   │
                                                   │
                                                   │
                                         ┌─────────▼────────┐
                                         │                  │
                                         │     Static site  │
                                         │                  │
                                         └──────────────────┘

Quick start with a generic web dashboard

Travis Build Status Build Status

Software License Go Report Card Go Doc

Codecov branch Release

DownloadDocumentationCommunity

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

  • Define data tables and relations from config files or API calls
    • 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, define auth using 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, create storage using API
    • 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, create new integration using API calls
    • 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

Overview

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

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

Road Map

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

Alt

daptin's People

Contributors

0xflotus avatar artpar avatar bobbygryzynger avatar dependabot[bot] avatar ghvstcode avatar jdrich avatar panakour avatar parasnarang avatar stevenferrer avatar testwill avatar yaskhan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

daptin's Issues

Relations dissapear

I'm having trouble adding new relations to my article table/form. Relations go to two new tables (Person and Category), which were created incl. three records each - before creating the article table.

On one hand the relations seem to be present. Still they don't show up on the form. The difference should be visible on the two attached screenshots.

daptinarticleformwithoutpersoncategoryrelations

daptinarticleformwithpersoncategoryrelations

I realize, that the dissapearance probably has to do with the edge-tables, that you set up between the nodes, you want to connect. But exactly how do you do that?

Relations-test on main form with four types of relations. Revealed pattern so far:
Relation Visible on main form Auto-created M2M-table Auto created M2M-table on dashboard
Belongs to Yes No No
Has one Yes No No
Has many No Yes No
Has many and belongs to many No Yes Yes

How to proceed from here?

My Daptin is running in Windows 10 with Sqlite as backend.

More properties on join table

The relations in Daptin - like has many, belongs to etc. - are concepts from graph database systems, where they describe the edges (the relation entities connecting the nodes).

The has many-relation in Daptin auto-creates a join-table (a kind of edge), and this behavior makes Daptin even more "graphy".

In graph databases, though, edges have more properties - like: personA like/dislike/has visited/is married to etc. personB. Is this possible with Daptin, or have I missed something here?

Add OpenAPI Support

Good project, but needs OpenAPI support! We are all changing our workflows to OpenAPI, you should not ignore this industry trend. Good Luck!

Unable to access dashboard

The documentation at https://daptin.github.io/daptin/setting-up/settingup/

mentions:

Accessing web dashboard

Open up the dashboard on http://localhost:8080/

You will be presented with the Sign-in screen. If you are on a freshly created instance, then you need to create a user first.

So trying to open it returns a 200 status code, but no content:

curl -X GET -I http://localhost:6336/ 
HTTP/1.1 200 OK
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Content-Type,Authorization,X-Requested-With
Access-Control-Allow-Methods: POST,GET,DELETE,PUT,OPTIONS,PATCH
Date: Thu, 23 Jan 2020 14:05:22 GMT
Content-Length: 0

My log shows that I'm accessing / but it's an empty response, not sure why. (notice the content length)

[GIN-debug] GET    /                         --> github.com/daptin/daptin/server.Main.func17 (6 handlers)
time="2020-01-23T15:04:44+01:00" level=info msg="Clean up config files: []"
time="2020-01-23T15:04:44+01:00" level=info msg="[26329] Listening at port: :6336"
time="2020-01-23T15:04:44+01:00" level=info msg="No result found for [certificate] [hostname][x1extreme]"
Failed to get admin id for user:  == sql: no rows in result set
time="2020-01-23T15:04:44+01:00" level=error msg="Failed to scan user group id from the result 1: sql: no rows in result set"
time="2020-01-23T15:04:44+01:00" level=info msg="Temp dir for certificates: /tmp"
[GIN] 2020/01/23 - 15:04:55 | 200 |      33.618µs |             ::1 | GET      /
[GIN] 2020/01/23 - 15:05:22 | 200 |      83.703µs |             ::1 | GET      /

Trying to access one of the endpoints does work (notice the content length)

➜  ~ curl -X GET -I http://localhost:6336/system
HTTP/1.1 200 OK
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Content-Type,Authorization,X-Requested-With
Access-Control-Allow-Methods: POST,GET,DELETE,PUT,OPTIONS,PATCH
Content-Type: application/json; charset=utf-8
Date: Thu, 23 Jan 2020 14:07:16 GMT
Content-Length: 505

Last docker image will not working, please check

Hi, start with last docker (daptin/daptin:travis, or daptin/daptin:last) will not working, please check, (new postgresql database)
It's only working with daptin/daptin:current,

And last release on 17 Sep 2019 2019.09,
how to start a new project with the newest code?

Thanks.

Add Social login/register - normalize email

Any thought on adding social login/register ?
Great work so far !!

Daptin is something I think far more people will realize is the only thing you need when making an API based site.
You are ahead of the competition as far as I can tell from my various tests.

-port should be a listenAddress

Port config and https config are a little confusing. I had to go into the source to figure out that it wasn't a port :)

https://github.com/daptin/daptin/blob/master/main.go#L56
https://github.com/daptin/daptin/blob/master/main.go#L57

You're using this in err = http.ListenAndServe(*port, &rhs)

But listenAndServe doesn't take a port, it takes a listenAddress. By saying :6336 you're actually saying 0.0.0.0:6336

So if someone defines export DAPTIN_PORT="8888" it will fail with a weird error saying the listen address doesn't exist. It needs to be export DAPTIN_PORT=":8888". Maybe we could add a check that if no ":" is found, it adds one at the front?

Matthias

Heroku Deploy Succeeds, but assets 404.

  • Are you running a release or master: master
  • Issue is about a fresh instance (no data in db) or restart: Fresh instance.

I used the "deploy to heroku" button to get up and running, which succeeded, but when I navigate to the app's index page, /, I'm getting a blank screen. All the assets are getting loaded except for the following, which are 404ing.

/static/js/app.028c9ad5f86af201da30.js 404
/static/js/vendor.7608ce94784a3aaaf8ea.js 404

Is there another piece of configuration necessary?

When the app starts, I'm getting some of these messages:

msg="Failed to scan config value [hostname]: sql: no rows in result set"
2020-02-07T22:36:35.348786+00:00 app[web.1]: time="2020-02-07T22:36:35Z" level=info msg="Failed to scan config value [jwt.secret]: sql: no rows in result set"
2020-02-07T22:36:35.352596+00:00 app[web.1]: time="2020-02-07T22:36:35Z" level=info msg="Failed to scan config value [logs.enable]: sql: no rows in result set"
2020-02-07T22:36:35.356512+00:00 app[web.1]: time="2020-02-07T22:36:35Z" level=info msg="Failed to scan config value [graphql.enable]: sql: no rows in result set"
2020-02-07T22:36:35.361962+00:00 app[web.1]: time="2020-02-07T22:36:35Z" level=info msg="Failed to scan config value [encryption.secret]: sql: no rows in result set"
2020-02-07T22:36:35.366242+00:00 app[web.1]: time="2020-02-07T22:36:35Z" level=info msg="Failed to scan config value [jwt.token.issuer]: sql: no rows in result set"
2020-02-07T22:36:35.366250+00:00 app[web.1]: time="2020-02-07T22:36:35Z" level=error msg="No default jwt token issuer set: sql: no rows in result set"

<3

i love you

Docker Image not working

When running docker run -p 8080:8080 daptin/daptin

> Status: Downloaded newer image for daptin/daptin:latest
> standard_init_linux.go:211: exec user process caused "no such file or directory"

Running on Ubuntu 18.04 Server

Unable to login after logout

Get more and more impressed by this tool. But I still haven't been able to login twice (login after first logout). Just get:

Unauthorized
Request failed with status code 403

I failed to Signin

Have both tried to clean browser cache and restart Daptin-server. Still no access.

Some log for possible clarification:

�[36mINFO�[0m[4106] Find all row by params: [smd]: map[world_id:[d4f04a34-dcb3-4125-9167-2003c93e387e] worldName:[smd_id]]
[GIN] 2018/10/26 - 22:12:32 |�[97;42m 200 �[0m|      2.9997ms |             ::1 |�[97;44m GET     �[0m /static/fonts/WOFF2/TTF/SourceSansPro-Regular.ttf.woff2
�[36mINFO�[0m[4106] Query: SELECT smd.created_at, smd.updated_at, smd.name, smd.label, smd.initial_state, smd.events, smd.user_account_id, smd.permission, smd.reference_id FROM smd JOIN  world_world_id_has_smd_smd_id j1 on j1.smd_id = smd.id join world on j1.world_id = world.id  WHERE world.reference_id IN (?) LIMIT 10 OFFSET 0 == [d4f04a34-dcb3-4125-9167-2003c93e387e]
�[36mINFO�[0m[4106] Relation [oauth_connect][[TableRelation] [oauth_connect_id][belongs_to][user_account_id]]
�[36mINFO�[0m[4106] Relation [oauth_connect][[TableRelation] [oauth_connect_id][has_many][usergroup_id]]
�[36mINFO�[0m[4106] Relation [oauth_connect][[TableRelation] [oauth_token_id][has_one][oauth_connect_id]]
[GIN] 2018/10/26 - 22:12:32 |�[97;42m 200 �[0m|      1.9986ms |             ::1 |�[97;44m GET     �[0m /static/fonts/WOFF2/TTF/SourceSansPro-Bold.ttf.woff2
[GIN] 2018/10/26 - 22:12:32 |�[97;42m 200 �[0m|     15.9916ms |             ::1 |�[97;44m GET     �[0m /jsmodel/oauth_connect.js
[GIN] 2018/10/26 - 22:12:32 |�[97;42m 200 �[0m|      1.0062ms |             ::1 |�[97;44m GET     �[0m /static/fonts/WOFF2/TTF/SourceSansPro-Light.ttf.woff2
�[36mINFO�[0m[4106] Find all row by params: [oauth_connect]: map[page[number]:[1] page[size]:[500] query:[W3siY29sdW1uIjoiYWxsb3dfbG9naW4iLCJvcGVyYXRvciI6ImlzIiwidmFsdWUiOiIxIn1d]]
�[36mINFO�[0m[4106] Found query in request: W3siY29sdW1uIjoiYWxsb3dfbG9naW4iLCJvcGVyYXRvciI6ImlzIiwidmFsdWUiOiIxIn1d
�[31mERRO�[0m[4106] Failed to unmarshal query as json, using as a filter instead: invalid character 'W' looking for beginning of value
�[36mINFO�[0m[4106] Query: []
�[36mINFO�[0m[4106] Query: SELECT oauth_connect.created_at, oauth_connect.updated_at, oauth_connect.name, oauth_connect.client_id, oauth_connect.client_secret, oauth_connect.scope, oauth_connect.response_type, oauth_connect.redirect_uri, oauth_connect.auth_url, oauth_connect.token_url, oauth_connect.profile_url, oauth_connect.profile_email_path, oauth_connect.allow_login, oauth_connect.user_account_id, oauth_connect.permission, oauth_connect.reference_id FROM oauth_connect WHERE ( oauth_connect.name like ? or oauth_connect.client_id like ? or oauth_connect.response_type like ? or oauth_connect.profile_email_path like ?) LIMIT 500 OFFSET 0 == [%W3siY29sdW1uIjoiYWxsb3dfbG9naW4iLCJvcGVyYXRvciI6ImlzIiwidmFsdWUiOiIxIn1d% %W3siY29sdW1uIjoiYWxsb3dfbG9naW4iLCJvcGVyYXRvciI6ImlzIiwidmFsdWUiOiIxIn1d% %W3siY29sdW1uIjoiYWxsb3dfbG9naW4iLCJvcGVyYXRvciI6ImlzIiwidmFsdWUiOiIxIn1d% %W3siY29sdW1uIjoiYWxsb3dfbG9naW4iLCJvcGVyYXRvciI6ImlzIiwidmFsdWUiOiIxIn1d%]
[GIN] 2018/10/26 - 22:12:32 |�[97;42m 200 �[0m|      9.9875ms |             ::1 |�[97;44m GET     �[0m /api/oauth_connect?page[number]=1&page[size]=500&query=W3siY29sdW1uIjoiYWxsb3dfbG9naW4iLCJvcGVyYXRvciI6ImlzIiwidmFsdWUiOiIxIn1d
[GIN] 2018/10/26 - 22:12:57 |�[97;43m 403 �[0m|      6.9944ms |             ::1 |�[97;46m POST    �[0m /action/user_account/signin
[GIN] 2018/10/26 - 22:13:09 |�[97;43m 403 �[0m|      8.9892ms |             ::1 |�[97;46m POST    �[0m /action/user_account/signin

PUT method is not working when updating the data in table

hi @artpar ,

I have been trying to update data in table but i am not able to process it Can you please help me on this. Thank you

curl -X PUT 'http://localhost:6336/api/item'
-H 'Content-Type: application/json;charset=UTF-8'
-H 'Accept: application/json, text/plain, /'
--data-binary '{"data":{"type":"item","attributes":{"reference_id":"8a533903-1c10-44cf-9ade-f0ca0dd050dd","name":"test","last_name":"test","amount":"20"}}}'

External connectors

Atleast one more data export sync would be good to have. Currently only Sync go Google sheets is present.

Also, the attribute map filter/mapping is currently not used. resulting in all the columns being synced.

MSSQL compatibility

would be nice to have if not much effort to maintain

  • mssql can have only one column as timestamp
  • mssql cannot have limit

wip

What to do?

Hi,

 What to do after:

docker run -p 8080:8080 daptin/daptin

???

Daptin Process ID: 1 17:15:29.417709 main.go:78: Listening at port: :8080
time="2018-06-26T17:15:29Z" level=info msg="Listening websocket server at ... /live"
Daptin Process ID: 1 17:15:29.440444 debug.go:45: [GIN-debug] GET /live --> github.com/daptin/daptin/server/websockets.(*Server).Listen.f
unc2 (6 handlers)
time="2018-06-26T17:15:29Z" level=info msg="Created handler"

Thanks!

Installation and running instructions unclear

Downloaded the binary. Latest Release.
Run on Ubuntu 18.04. It creates the sqlite file. Long list of tables etc...
And then... nothing.
This is the last list of items that came up in console.
localhost:8080 or any of the other ports, nothing.
No clear indication what next.
Tried the docker file. Just exits with error.
Looks like good project - will like to try it but I have no idea how to install that works. Is there maybe some dependencies that I must first load?

`gopkg.in/src-d/go-git%2ev4.PlainCloneContext(0x4fdf440, 0xc000044310, 0xc0002e83f0, 0x29, 0x0, 0xc00034e700, 0x52, 0xc0002e83f0, 0x29)
	/source/vendor/gopkg.in/src-d/go-git.v4/repository.go:357 +0xcc
gopkg.in/src-d/go-git%2ev4.PlainClone(...)
	/source/vendor/gopkg.in/src-d/go-git.v4/repository.go:333
github.com/daptin/daptin/server/resource.NewMarketplaceService(0xc0002e8030, 0x24, 0xc000156240, 0x52, 0x0, 0x0, 0x1fffa1, 0xc0007521a0, 0xc0002e8360, 0x24, ...)
	/source/server/resource/market.go:130 +0x347
github.com/daptin/daptin/server/resource.(*MarketplacePackageInstallActionPerformer).refresh(0xc000196770)
	/source/server/resource/action_install_marketplace_package.go:65 +0x18c
created by github.com/daptin/daptin/server/resource.NewMarketplacePackageInstaller
	/source/server/resource/action_install_marketplace_package.go:82 +0x9b
goroutine 130 [select]:
github.com/robfig/cron.(*Cron).run(0xc000238c40)
	/source/vendor/github.com/robfig/cron/cron.go:152 +0x53e
created by github.com/robfig/cron.(*Cron).Start
	/source/vendor/github.com/robfig/cron/cron.go:127 +0x43

Heroku build failing

I just tried a fresh install on Heroku using the Button given in the guide. The build fails with the following message;

[INFO]	--> Exporting gopkg.in/yaml.v2
[INFO]	Replacing existing vendor dependencies
-----> Running: go install -v -tags heroku . 
server/resource/action_export_csv_data.go:8:2: cannot find package "github.com/gocarina/gocsv" in any of:
	/tmp/tmp.03I9jnjAa4/.go/src/github.com/daptin/daptin/vendor/github.com/gocarina/gocsv (vendor tree)
	/app/tmp/cache/go1.10.2/go/src/github.com/gocarina/gocsv (from $GOROOT)
	/tmp/tmp.03I9jnjAa4/.go/src/github.com/gocarina/gocsv (from $GOPATH)
 !     Push rejected, failed to compile Go app.
 !     Push failed

Task scheduler

Certain things (chains of actions) need to be executed at repeted intervals for following tasks:

  • sync cloud storage of sub-sites with local
  • sync two sources of data if there is no push available
  • generate reports (eg stats report to admin every 24 hours)

Dapt.in seems to be down

The dapt.in website including a lot of important documentation seems to be down.

This is a real pity, as Daptin looks like a really awesome project. This is at least the most user friendly version of graph databases, that I've encountered so far.

Please keep up the good work.

Need to use transactions to accelerate database creation

Hello !
I've noticed that daptin is not using transactions around creation/update tables and that is the reason it takes so long with sqlite3.

See a kick test bellow, with it the database creation is almost a second.
Cheers !

func Main(boxRoot, boxStatic http.FileSystem, db *sqlx.DB, wg *sync.WaitGroup, l net.Listener, ch chan struct{}) {
	defer wg.Done()

	//configFile := "daptin_style.json"
	/// Start system initialise

	log.Infof("Load config files")
	initConfig, errs := loadConfigFiles()
	if errs != nil {
		for _, err := range errs {
			log.Errorf("Failed to load config file: %v", err)
		}
	}

	_, errb := db.Exec("begin")  /////////////////////START A TRANSACTION
	resource.CheckErr(errb, "Failed to begin transaction")

	existingTables, _ := GetTablesFromWorld(db)
	//initConfig.Tables = append(initConfig.Tables, existingTables...)
	existingTablesMap := make(map[string]bool)

	allTables := make([]resource.TableInfo, 0)

	for j, existableTable := range existingTables {
...
	}
...
	err := resource.UpdateActionTable(&initConfig, db)
	resource.CheckErr(err, "Failed to update action table")

	_, errc := db.Exec("commit") //////COMMIT A TRANSACTION
	resource.CheckErr(errc, "Failed to commit transaction")

	/// end system initialise
...
	select {
	case <-ch:
		return
	default:
	}

}

Add search across data

I want more of a natural language search. Since we know all the involved entities and their relations, this shouldn't be to hard.

  • find {entities} with {field} {constraint}
  • top X items in {entities} by {constraint}

Connecting to external storage

External storage should be cloud storage providers, which can handle file uploads and attachment handling.

Will also be used to store html/css for subsites.

unable to login after become an admin

hi @artpar ,

I am unable to login after i became admin in daptin and i have gone through points that you have mentioned in the issue #42 but i couldn't find solution for this. I am having access to mysql file how i can change the permission there and restart the daptin. Can i please have solution for this.

Best way to decode JWT in NodeJS or PHP

Looking to share the auth JWT token to authenticate the user for another service I have.
Are you doing anything special or can I just decode the token by fetching the key you generate on init ?
Thanks.

Support Casbin as the authorization backend

Hi, Casbin is an authorization library that supports models like ACL, RBAC, ABAC.

Related to RBAC, Casbin has several advantages:

  1. roles can be cascaded, aka roles can have roles.
  2. support resource roles, so users have their roles and resource have their roles too. role = group here.
  3. the permission assignments (or policy in Casbin's language) can be persisted in files or database (Gorm or Xorm or any popular DBs).

And you can even customize your own access control model, for example, mix RBAC and ABAC together by using roles and attributes at the same time. It's very flexible.

Casbin can provide more flexibility and security than the current UNIX file system ACL. Besides, Casbin also supports ACL, owner, groups, but also supports RBAC, ABAC and other kind of things. Let me know if there's any question:) Thanks.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.