Giter Club home page Giter Club logo

csync-server's People

Contributors

boopt2 avatar dfirsht avatar kevinlai avatar

Stargazers

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

Watchers

 avatar  avatar  avatar

csync-server's Issues

Access Control UI

  • Add ability to modify ACLs from the dataviewer

  • Set default ACL when creating node from inside dataviewer

  • Ensure each node has own ACL vs it's parents if they are different

  • When no node is selected, remove ACL div

Investigate advance/fetch as a RESTful endpoint

tmpreiss commented on Dec 13, 2016
Advance and fetch are stateless in that the protocol allows for missed packets and missed requests so this lends itself to a stateless RESTful endpoint.

Regurgitate the FQ contents to rabbit upon session close

rajamony commented on Aug 25, 2015
This is a tough one (to describe and implement). Today, when a user session closes, we "remove" it and call the cleanup method on UserSession. This in turn flushes the FQ (by calling q.flush), which causes all pending messages for the session that haven't yet been delivered to them to get discarded. A better option would be to not just flush them but instead stuff them in the rabbit message queue. It isn't straightforward to implement (I think) because by the time you are invoking the flush on FQ, you may have canceled the mq. So some thought is required here on how it gets done.

The current mode of operation does not cause a correctness problem. A client will (eventually) reconnect and then either republish or resubscribe and things will all go right again. This fix is really about (a) optimizing what might be a corner case (b) making the flow more elegant.

Deleting a node also deletes sibling nodes from view

Server Version: 1.0.1
Client Version: 1.0.1

Steps to Reproduce:

  • Write a.b.c directly to the CSync instance.
  • Then write a.b.d
  • Delete c

Expected Behavior: c should be deleted
Actual Behavior: c and d are deleted

Malformed request closes socket connection from the server

tmpreiss commented on Dec 13, 2016
When testing the fetch response from the android sdk, we found that sending rvts instead of vts, the server logs show that there is a Validation error in the request and the server closes the connection.

In the event the server receives a malformed packet. should the server close the websocket or should it just return an error for the one message?

transient vs persistent data

kba commented on Aug 21, 2015
A nice extension of the current functionality is to allow "transient" or "ephemeral" writes -- meaning writes of data to be disseminated to all current listeners but not persisted in the database. This would be useful for data that quickly loses its value with the passage of time, e.g. statistics about current connections. This amounts to skipping the DB operation and simply posting the data to the message queue -- conceptually very simple. The data would have to be marked as transient so that clients would know not to persist it in local DBs as well.

This seems like a potentially useful enhancement but we need to validate that there are real user requirements for it before applying resources.

Design and implement a mechanism for refreshing client ACLs

mkistler commented on Mar 16, 2016
Clients must issue advance for every ACL they have read access to, but this set of ACLs can change, and we currently have no mechanism for refreshing or updating the client with the correct set of ACLs. We need to design and implement this mechanism.

mkistler commented on Mar 18, 2016
We actually need to address two related issues:

  1. Client must refresh it's set of readable ACLs when necessary
  2. Queue bindings must be updated when ACLs change

Client must clean up DB to eliminate any data not for ACLs the client can read.

Support Paging

laik commented on Feb 25, 2016
As a user I would like to listen on a key and receive only a subset of values at a time.

Sorting needs to be determined.

Allow "batching" of advance requests to reduce message count

mkistler commented on Mar 16, 2016
The client must send regular advance messages to the server to check for missing data, and advance is specific to ACL, so for a user that has read access to n ACLs, this means n regular messages from client to server and back every advance interval (currently 5 seconds). We should find some way to batch some or all advance requests in one message to reduce message traffic between client and server.

Server Allows for pub creates on wildcards

Server Version:Master
Client Version:
Steps to Reproduce:

  • Pub(103, Seq("a", "b", "*"), Some("z"), false, None, None)
  • Basically, pub create on a wildcard
    Expected Behavior: Should fail or return an error
    Actual Behavior: Creates a node on "a.b"

Setup/Test Travis CI

Server Version: 1.0.0

Expected Behavior: Should run the tests
Actual Behavior: The setup currently fails on Travis

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.