Git Product home page Git Product logo

dataserver's Introduction

Zotero

CI

Zotero is a free, easy-to-use tool to help you collect, organize, cite, and share your research sources.

Please post feature requests or bug reports to the Zotero Forums. If you're having trouble with Zotero, see Getting Help.

For more information on how to use this source code, see the Zotero documentation.

dataserver's People

Contributors

abaevbog avatar dstillman avatar grumbelbart avatar mrtcode avatar sualk avatar tnajdek 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

dataserver's Issues

Server down

@dstillman - sorry to "spam" here - but you guys are aware that the sync server is down and the Zotero forum is barely functional?
@stakats - maybe send out a tweet from the Zotero account?

Add /tags subview to all items requests

This will allow getting the tags for an arbitrary set of items. In this subview, the tag parameter will still filter by tag, but the other search parameters — including q — will apply to the 'items' component.

To allow getting the tags that match all items matching a given tag, we should extend q to support labels (q=tag:foo) or add a itemTag parameter similar to itemKey.

documentation

This repo should be documented with at least a simple readme. If I can wrap my head around it, I'll get one started.

Key info/delete requests without key in URL

Right now you have to do /keys/<key> to get key info or delete. It should be possible to do those without embedding the key.

Just /keys with Zotero-API-Key: <key> doesn't make sense. /keys/current is pretty ugly. Just /key? And then to delete you'd do DELETE /key? @fcheslack?

Flexible storage backend

I'm looking into packaging this, but it seems that this requires the use of Amazon S3 storage. I was considering using a more flexible interface like Flysystem, which would allow for one API, but allowing use of different storage backend. Would this be something that you might consider integrating?

Always return array for dc:relation

There's a general mechanism to switch between a string and an array for relations depending on how many values there are (since for some relations an array doesn't really make sense), but for related items it should always be an array.

Ignore empty creator

Empty creator object is included in new item template, so it should be possible to pass it back unchanged

Database creation script fails

misc/test_setup fails in various places. I also can't find the definition of the WWW database.

I had to make these changes:
INSERT INTO shards VALUES (1, 1, 'zoterotest1', 'pass1', 'zoterotest1', 'up');
to
INSERT INTO shards VALUES (1, 1, 'zoterotest1', 'up', 0);

INSERT INTO shards VALUES (2, 1, 'zoterotest2', 'pass2', 'zoterotest2', 'up');
to
INSERT INTO shards VALUES (2, 1, 'zoterotest2', 'up', 0);

INSERT INTO shardLibraries VALUES (1, 'user')
to
INSERT INTO shardLibraries VALUES (1, 'user',0,1);

INSERT INTO shardLibraries VALUES (2, 'user')
to
INSERT INTO shardLibraries VALUES (2, 'user',0,1);

INSERT INTO shardLibraries VALUES (3, 'group')
to
INSERT INTO shardLibraries VALUES (3, 'group',0,1);

I had to skip the zotero_www_test commands since there doesn't appear to be a definition of that database.

Are there recent setup instructions on Ubuntu?

Request headers are case sensitive

The API server expects headers matching a certain case - i.e. it will accept Authorization but not authorization. The HTTP standards say headers are case-insensitive and as a result some HTTP request libraries (such as the built-in JavaScript fetch()) are incompatible with the Zotero API.

This occurs because fetch appears to convert all custom request headers to lower case which means any authorized URL will always return a 403. I've confirmed this in the current version of Atom Electron, Chrome/47.0.2526.73 Electron/0.36.2 and the latest version of Postman.

I'm not particularly familiar with the dataserver code base, but it looks like looping over the apache_request_headers() and converting to lower case in the apiController could fix the issue? Happy to submit a pull request if this fix is suitable.

settle on the official install documentation

Is the real install documentation in the wiki associated with the parent of this git repository (here) or with the documentation on the support section of the website (here)? They seem to be significantly different.

ENH: W3C Linked Data: RDF(a), Schema.org, OpenAnnotation, LDP (Linked Data Platform)

It could be useful to share citations as a graph of linked data (RDF(a)) with URIs and URLs on the server side, with the web interface.

References:

...

/subscriptions and feed sync support

This is not necessarily urgent, but upon 5.0 release may become an evident issue. Feeds are currently synced with syncedSettings, but warrant their own endpoint if used very heavily (hundreds of feeds per user). We want this endpoint to be more generalised and fit future purpose of subscriptions as briefly discussed here

A new /subscriptions endpoint is proposed with url and type values for filters.

To accommodate this endpoint at least two database tables are needed:

  • subscriptions with subscriptionID, url and type fields
  • subscriptionsFeeds with subscriptionID as FK + other feed specific fields

Later on subscriptionsCollections and similar could be added.

Groups not appearing on client

Hello all,
I have installed the server locally and have created some items in the test group via the database. I used the API to see that the groups are public and accessible, but I do not see it in the FF client. Any ideas why that might be?

Thanks in advance,
Nick

Set S3 storage class for full-text content based on compressed size

After compressing the data, if we can easily tell the size of the compressed object, we could dynamically choose the storage class based on whether it's >75KB (which is a little bit more than half the minimum billable size for STANDARD_IA objects, figuring that STANDARD_IA is approximately half the price of STANDARD and request fees are a bit more).

This would need to apply to the dataserver and the migration script.

Upload Authorization request: better error message on invalid form data

On POST /users/<id>/items/<key>/file, when the mtime parameter in the form data has the wrong format (for example, a date string instead of integer milliseconds), the upload authorization request returns an unhelpful 500 Internal Error "An error occurred". Better would be to return a 400 Bad request with an error message that refers to the incorrect form parameter

Error from concurrent request limiter

Concurrent request limit exceeded

Failed to remove an element from a sorted set in include/RequestLimiter.inc.php:162

Warning: Timed out concurrent requests found: 1

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.