I have created a number of devices in my Xively account and always selected "private access" in the create wizard. I recently noticed that some of these devices are publicly accessible, even though the Xively portal is telling me they are private. If I use the portal to change the access to public and back to private again then they are no longer publicly accessible. Does anyone know why some devices are public when the portal says they are private?
Why does the Xively developer portal show a device is private when in fact it is public?
110 Views Asked by RobM At
1
There are 1 best solutions below
Related Questions in XIVELY
- Google IoT with Xively API availability
- Whats the error refer to connect xively using master api key? SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:645)
- Xively Personal - was working but now data does not change
- Xively and keypad.h
- Xively Device Activation Code does not match using HMAC-SHA1 algorithm
- Server error upon adding new device leads to duplicate devices
- Python: pushing sensor data from Raspberry Pi to xively
- Is Xively web socket down?
- Xively error using json
- Pulling data from web server on android not updating
- Xively displays incorrect timestamp when logged out
- Sending data to Xively using Arduino mega + GSM shield sim 900
- New Xively server error (503) on production system
- How to pull data from Xively without authentication?
- xlively conversion from Pachube Feed VB.net
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
I've found the reason for this now. There are actually two problems which combine to cause what I think is quite a nasty data privacy issue.
Firstly, the Xively portal does not accurately reflect the current accessibility status (public or private) of a feed; it shows the status that was selected when the device was created or subsequently modified via the portal, however if an application changes the status via the API this change is never reflected in the portal UI. If your application accidentally changes the status from private to public the portal will continue to display "private" whenever you look at it.
Secondly, there is a bug in the Xively Java library which changes a device's status to public whenever you use the library to update a device (e.g. submit a reading). The update() method of the FeedRequester class submits every attribute for a feed whether you specify the attribute or not. In most cases this doesn't matter because the method sends a value of null for unspecified attributes which the server (presumably) ignores. The one exception is the "private" attribute - in this case if your application does not specify a value the library will send a value of false, not null, presumably because the attribute is stored in the Java library as a Java primitive type (boolean) and not an object. The net effect is if you call this method without explicitly setting private to true, your device's status will be changed from private to public without you realising it.