Coder Social home page Coder Social logo

raptor's People

Contributors

amaestrini avatar ansriaz avatar gitter-badger avatar muka avatar pspada avatar

Stargazers

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

Watchers

 avatar  avatar  avatar

raptor's Issues

Fetch tokens throws exception

When retrieving tokens (/auth/token) the api complain about the serialization of the owner` property. It may be mapped to a getter and return just the user UUID.

Introduce pluggable modules support

Interfaces and configuration are tied together and should be instead refactored to allow a more modular approach, where extension can happens just via plugging a new library

To evaluate:

  • SPI
  • OSGI
  • 3rd party libraries, eg decebals/pf4j

Support JWT

Support JWT for token genration and validation

Developer resources status

Documentation

  • #12 Generate Swagger documentation for Raptor API
  • #11 Generate Swagger documentation for security API
  • #20 Update and migrate previous documentation to Jekill / github.io

SDK

  • #4 Java client SDK
  • #15 Javascript client SDK

Deployment & Testing

  • #18 Docker based deployment
  • #17 Docker compose support

Refactor storage API

  • Drop support for query
  • Add support for multiple database concurrently
  • remove dependecy from storage as it is in favour of the indexer

Map object / ACL hierarchy

Access tree to objects should be inherited from parents

With a tree like this A / B / C where user u1 can read data from A, they will be able to read data from B and C too

Permissions setup should not happen async

When creating a device permission are created asynchrounusly, this create two side effects

  1. Fast clients may get 403 on request (solved by retrying request, as done in the SDK)
  2. In some conditions there are chances the message will get lost causing the ACL not being created at all and making the new device unusable, unless it is manually registered with /auth/sync

To avoid that we may use QOS 2 if not already the case or force the ACL creation request to succeed before having the device created

Add TTL as property

Set the TTL option in settings to allow fine grained data duration configuration

Review data pull and search APIs

Current search API is pretty cumbersome and limited.

  • Review the pull / pull lastupdate feature
  • Review and optimize how search and multi-parameter search are managed

Add java based client

Integrate Java based client to the repository, leveraging on raptor-model sub project

Refactor data structure

Current data structure is verbose and complex to handle at client side

[{
  channels: {
    channelName: {
       current-value: <channel value>
    }
  },
  lastUpdate: 1234567890
}]

The new structure will have a data field containing a map of key/value and a timestamp value in place of lastUpdate

[{
   data: {
    channelName: <channel value>
  },
  timestamp: 1234567890
}]

Group features

Group

  • Management HTTP API #5
  • Handle groups in dispatcher #6
  • Match hierarchy between objects/ACL #22

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.