{"id":13558029,"url":"https://github.com/openannotation/annotator-store","last_synced_at":"2025-04-06T07:14:48.977Z","repository":{"id":139544953,"uuid":"1397272","full_name":"openannotation/annotator-store","owner":"openannotation","description":"A backend store for the Annotator","archived":false,"fork":false,"pushed_at":"2016-02-16T00:08:19.000Z","size":723,"stargazers_count":179,"open_issues_count":9,"forks_count":66,"subscribers_count":23,"default_branch":"master","last_synced_at":"2025-03-30T06:07:27.900Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://annotateit.org/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/openannotation.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGES.rst","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2011-02-22T11:30:09.000Z","updated_at":"2025-01-22T22:38:30.000Z","dependencies_parsed_at":"2023-05-02T15:57:03.762Z","dependency_job_id":null,"html_url":"https://github.com/openannotation/annotator-store","commit_stats":null,"previous_names":[],"tags_count":33,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openannotation%2Fannotator-store","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openannotation%2Fannotator-store/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openannotation%2Fannotator-store/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openannotation%2Fannotator-store/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openannotation","download_url":"https://codeload.github.com/openannotation/annotator-store/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247445681,"owners_count":20939961,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T12:04:41.938Z","updated_at":"2025-04-06T07:14:48.953Z","avatar_url":"https://github.com/openannotation.png","language":"Python","funding_links":[],"categories":["Python","others"],"sub_categories":[],"readme":"Annotator Store\n===============\n\nThis is a backend store for `Annotator \u003chttp://annotatorjs.org\u003e`__.\n\nThe functionality can roughly be separated in two parts:\n\n1. An abstraction layer wrapping Elasticsearch, to easily manage annotation\n   storage. It features authorization to filter search results according to\n   their permission settings.\n2. A Flask blueprint for a web server that exposes an HTTP API to the annotation\n   storage. To use this functionality, build this package with the ``[flask]``\n   option.\n\nGetting going\n-------------\n\nYou'll need a recent version of `Python \u003chttp://python.org\u003e`__ (Python 2 \u003e=2.6\nor Python 3 \u003e=3.3) and `ElasticSearch \u003chttp://elasticsearch.org\u003e`__ (\u003e=1.0.0)\ninstalled.\n\nThe quickest way to get going requires the ``pip`` and ``virtualenv``\ntools (``easy_install virtualenv`` will get them both). Run the\nfollowing in the repository root::\n\n    virtualenv pyenv\n    source pyenv/bin/activate\n    pip install -e .[flask]\n    cp annotator.cfg.example annotator.cfg\n    python run.py\n\nYou should see something like::\n\n    * Running on http://127.0.0.1:5000/\n    * Restarting with reloader...\n\nIf you wish to customize the configuration of the Annotator Store, make\nyour changes to ``annotator.cfg`` or dive into ``run.py``.\n\nAdditionally, the ``HOST`` and ``PORT`` environment variables override\nthe default socket binding of address ``127.0.0.1`` and port ``5000``.\n\nStore API\n---------\n\nThe Store API is designed to be compatible with the\n`Annotator \u003chttp://okfnlabs.org/annotator\u003e`__. The annotation store, a\nJSON-speaking REST API, will be mounted at ``/api`` by default. See the\n`Annotator\ndocumentation \u003chttp://docs.annotatorjs.org/en/v1.2.x/storage.html\u003e`__ for\ndetails.\n\nRunning tests\n-------------\n\nWe use ``nosetests`` to run tests. You can just\n``pip install -e .[testing]``, ensure ElasticSearch is running, and\nthen::\n\n    $ nosetests\n    ......................................................................................\n    ----------------------------------------------------------------------\n    Ran 86 tests in 19.171s\n\n    OK\n\nAlternatively (and preferably), you should install\n`Tox \u003chttp://tox.testrun.org/\u003e`__, and then run ``tox``. This will run\nthe tests against multiple versions of Python (if you have them\ninstalled).\n\nPlease `open an issue \u003chttp://github.com/openannotation/annotator-store/issues\u003e`__\nif you find that the tests don't all pass on your machine, making sure to include\nthe output of ``pip freeze``.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenannotation%2Fannotator-store","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenannotation%2Fannotator-store","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenannotation%2Fannotator-store/lists"}