openbel-api 1.0.3-java → 1.0.4-java
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gemspec +1 -1
- data/CHANGELOG.md +8 -0
- data/INSTALL.md +12 -10
- data/README.md +32 -12
- data/VERSION +1 -1
- data/app/openbel/api/app.rb +1 -0
- data/app/openbel/api/middleware/auth.rb +6 -3
- data/app/openbel/api/routes/annotations.rb +5 -0
- data/app/openbel/api/routes/authenticate.rb +5 -0
- data/app/openbel/api/routes/datasets.rb +5 -0
- data/app/openbel/api/routes/expressions.rb +27 -7
- data/app/openbel/api/routes/language.rb +5 -0
- data/app/openbel/api/routes/namespaces.rb +5 -0
- data/app/openbel/api/routes/nanopubs.rb +5 -0
- data/app/openbel/api/routes/root.rb +5 -0
- data/app/openbel/api/routes/version.rb +5 -0
- data/bin/setup-docker.sh +62 -0
- data/config/config.yml +9 -6
- metadata +58 -56
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 00a36abdeadf9bbfeaf6bd2251e2f7cd32b051bf
|
|
4
|
+
data.tar.gz: 29e80343fd5d984c9df84266fe707ded3fc10658
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 0f417e1ab2ae9a477ed14d4ce15fbc048b83ce31e0fb2254c02ad16f11d4f1e187e18c2011420abf589367e9dcdabb230866b21af71b1517b9c866d29564aa76
|
|
7
|
+
data.tar.gz: 5a9377f4e826f6287883c89b414f4b5df48f5872fb72569da9ec1c577dcb04f716a1e0241ff85cb3376e31e5b9b2d710929da3c13ff5a775f21a737aaffdd229
|
data/.gemspec
CHANGED
|
@@ -26,7 +26,7 @@ Gem::Specification.new do |spec|
|
|
|
26
26
|
'README.md'
|
|
27
27
|
].flatten!
|
|
28
28
|
spec.executables = Dir.glob('bin/*').map(&File.method(:basename))
|
|
29
|
-
spec.homepage = 'https://github.com/OpenBEL/openbel-
|
|
29
|
+
spec.homepage = 'https://github.com/OpenBEL/openbel-api'
|
|
30
30
|
spec.require_paths = ['app', 'lib']
|
|
31
31
|
spec.platform = 'java'
|
|
32
32
|
spec.required_ruby_version = '>= 2.0.0'
|
data/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,13 @@ All notable changes to openbel-api will be documented in this file. The curated
|
|
|
3
3
|
|
|
4
4
|
This project adheres to [Semantic Versioning][Semantic Versioning].
|
|
5
5
|
|
|
6
|
+
## [1.0.4][1.0.4] - 2016-12-28
|
|
7
|
+
### Added
|
|
8
|
+
- Docker containers for development and production use of OpenBEL
|
|
9
|
+
|
|
10
|
+
### Changed
|
|
11
|
+
- Converted authentication to use Keycloak Pubkey RSA256 Token authentication
|
|
12
|
+
|
|
6
13
|
## [1.0.1][1.0.1] - 2016-06-08
|
|
7
14
|
### Added
|
|
8
15
|
- Renaming APIs and code on [new terminology][new terminology].
|
|
@@ -87,6 +94,7 @@ Datasets are stored with a URI computed from the scheme and host that is serving
|
|
|
87
94
|
- Retrieve equivalent namespace values from the individual.
|
|
88
95
|
- Retrieve orthologous namespace values from the individual.
|
|
89
96
|
|
|
97
|
+
[1.0.4]: https://github.com/OpenBEL/openbel-api/compare/0.6.2...1.0.4
|
|
90
98
|
[1.0.1]: https://github.com/OpenBEL/openbel-api/compare/0.6.2...1.0.1
|
|
91
99
|
[1.0.0]: https://github.com/OpenBEL/openbel-api/compare/0.6.2...1.0.0
|
|
92
100
|
[0.6.2]: https://github.com/OpenBEL/openbel-api/compare/0.6.1...0.6.2
|
data/INSTALL.md
CHANGED
|
@@ -1,19 +1,21 @@
|
|
|
1
|
-
Install
|
|
2
|
-
=======
|
|
1
|
+
## Install
|
|
3
2
|
|
|
4
3
|
This library requires [Ruby](https://www.ruby-lang.org) (**>= 2.0.0**). See [how to install ruby](https://github.com/OpenBEL/bel.rb/blob/master/INSTALL_RUBY.md).
|
|
5
4
|
|
|
6
|
-
|
|
5
|
+
#### From RubyGems
|
|
6
|
+
|
|
7
|
+
Install from [RubyGems.org](http://rubygems.org/gems/openbel-api)
|
|
7
8
|
|
|
8
9
|
```bash
|
|
9
|
-
gem install
|
|
10
|
+
gem install openbel-api
|
|
10
11
|
```
|
|
11
12
|
|
|
12
|
-
|
|
13
|
+
Run with `openbel-api --file your_config.yml`
|
|
14
|
+
|
|
15
|
+
You can obtain an example configuration file with `openbel-config`.
|
|
16
|
+
|
|
17
|
+
#### On Docker
|
|
18
|
+
|
|
19
|
+
Please see the DOCKER.md file for Docker instructions
|
|
13
20
|
|
|
14
|
-
1. Obtain source for master branch.
|
|
15
|
-
- `git clone git@github.com:OpenBEL/bel.rb.git`
|
|
16
21
|
|
|
17
|
-
2. Build
|
|
18
|
-
- `gem build bel.gemspec`
|
|
19
|
-
- `gem install bel-[VERSION].gem`
|
data/README.md
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
The OpenBEL API provides RESTful API access to your BEL content. It is part of [OpenBEL Platform][OpenBEL Platform].
|
|
4
4
|
|
|
5
|
+
|
|
5
6
|
## Features
|
|
6
7
|
|
|
7
8
|
- Nanopub Store
|
|
@@ -61,6 +62,8 @@ The OpenBEL API is built to run with [JRuby][JRuby] and [Java 8][Java 8].
|
|
|
61
62
|
|
|
62
63
|
## Getting up and Running
|
|
63
64
|
|
|
65
|
+
*See the DOCKER.md file instructions for using Docker (recommended).*
|
|
66
|
+
|
|
64
67
|
### Installation
|
|
65
68
|
|
|
66
69
|
The OpenBEL API is packaged and installed as a Ruby gem. A Ruby gem is packed library or application that runs on the Ruby virtual machine. In this case OpenBEL API runs only on [JRuby][JRuby].
|
|
@@ -132,31 +135,48 @@ resource_search:
|
|
|
132
135
|
database_file: 'biological-concepts-rdf.db'
|
|
133
136
|
```
|
|
134
137
|
|
|
135
|
-
|
|
136
138
|
**Tip**
|
|
137
139
|
You can obtain the latest Resource Search database (20150611) from the [OpenBEL build server][Resource Search 20150611].
|
|
138
140
|
|
|
139
|
-
*Token-based authentication*
|
|
140
|
-
The OpenBEL API is equipped to require authentication for specific API paths (e.g. nanopub, Datasets). The implementation uses [Auth0][Auth0] as a single sign-on service.
|
|
141
141
|
|
|
142
|
-
|
|
142
|
+
## Enabling Authentication
|
|
143
143
|
|
|
144
|
-
The
|
|
144
|
+
The OpenBEL API uses *Token-based authentication* supported by Keycloak.
|
|
145
|
+
The OpenBEL API is equipped to require authentication for specific API
|
|
146
|
+
paths (e.g. nanopub, Datasets). The implementation uses [Keycloak][Keycloak]
|
|
147
|
+
for a single sign-on service.
|
|
148
|
+
|
|
149
|
+
By default, authentication is disabled. The default configuration is:
|
|
145
150
|
|
|
146
151
|
```yaml
|
|
147
152
|
# Set a secret used during session creation....
|
|
148
153
|
session_secret: 'changeme'
|
|
149
154
|
|
|
150
|
-
# User authentication using Auth0.
|
|
151
155
|
auth:
|
|
156
|
+
# Controls whether the API requires authentication
|
|
152
157
|
enabled: false
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
+
# Used by the auth middleware to decode and verify the JWT
|
|
159
|
+
#secret: 'JWT secret here'
|
|
160
|
+
|
|
161
|
+
# API Authentication is provided via JWTs from Keycloak
|
|
162
|
+
# see http://jwt.io/ and https://keycloak.org
|
|
163
|
+
# auth:
|
|
164
|
+
# # Controls whether the API requires authentication
|
|
165
|
+
# enabled: true
|
|
166
|
+
# # Used by the auth middleware to decode and verify the JWT
|
|
167
|
+
# secret: |
|
|
168
|
+
# -----BEGIN PUBLIC KEY-----
|
|
169
|
+
# <keycloak_pub_key>
|
|
170
|
+
# -----END PUBLIC KEY-----
|
|
158
171
|
```
|
|
159
172
|
|
|
173
|
+
An example
|
|
174
|
+
The keycloak Pub Key can be found in the Admin console for Keycloak:
|
|
175
|
+
|
|
176
|
+
1. Realm Settings
|
|
177
|
+
1. Keys tab
|
|
178
|
+
1. Public Key -> View
|
|
179
|
+
|
|
160
180
|
### Running the OpenBEL API
|
|
161
181
|
|
|
162
182
|
The OpenBEL API can be run using the `openbel-api` command and passing a configuration file.
|
|
@@ -276,7 +296,7 @@ Built with collaboration and a lot of :heart: by the [OpenBEL][OpenBEL] communit
|
|
|
276
296
|
[Upgrading]: https://github.com/OpenBEL/openbel-api/blob/master/UPGRADING.md
|
|
277
297
|
[RubyGems]: https://rubygems.org
|
|
278
298
|
[RDF]: http://www.w3.org/RDF/
|
|
279
|
-
[
|
|
299
|
+
[Keycloak]: https://http://www.keycloak.org/
|
|
280
300
|
[Puma HTTP server]: http://puma.io/
|
|
281
301
|
[Resource RDF 20150611]: http://build.openbel.org/browse/OR-RRD2/latestSuccessful/artifact
|
|
282
302
|
[Resource Search 20150611]: http://build.openbel.org/browse/OR-RSD2/latestSuccessful/artifact
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
1.0.
|
|
1
|
+
1.0.4
|
data/app/openbel/api/app.rb
CHANGED
|
@@ -39,14 +39,17 @@ module OpenBEL
|
|
|
39
39
|
token = token_param unless token_param.nil?
|
|
40
40
|
|
|
41
41
|
secret = OpenBEL::Settings[:auth][:secret]
|
|
42
|
-
|
|
42
|
+
pubkey = OpenSSL::PKey::RSA.new(secret)
|
|
43
|
+
|
|
44
|
+
# secret = Base64.decode64(secret)
|
|
45
|
+
|
|
43
46
|
# whether we should verify the token
|
|
44
47
|
verify = true
|
|
45
48
|
# JWT options passed to decode
|
|
46
|
-
options = {}
|
|
49
|
+
options = { :algorithm => 'RS256' }
|
|
47
50
|
|
|
48
51
|
begin
|
|
49
|
-
decoded_token = decode(token,
|
|
52
|
+
decoded_token = decode(token, pubkey, verify, options)
|
|
50
53
|
rescue ::JWT::VerificationError => ve
|
|
51
54
|
puts ve.inspect
|
|
52
55
|
raise 'invalid authorization token'
|
|
@@ -3,6 +3,11 @@ module OpenBEL
|
|
|
3
3
|
|
|
4
4
|
class Authenticate < Base
|
|
5
5
|
|
|
6
|
+
configure :development do |config|
|
|
7
|
+
Authenticate.reset!
|
|
8
|
+
use Rack::Reloader
|
|
9
|
+
end
|
|
10
|
+
|
|
6
11
|
get '/api/authentication-enabled' do
|
|
7
12
|
enabled = OpenBEL::Settings[:auth][:enabled]
|
|
8
13
|
hdrs = {'Content-Type' => 'application/json'}
|
|
@@ -56,6 +56,11 @@ module OpenBEL
|
|
|
56
56
|
@annotation_transform = AnnotationTransform.new(annotations)
|
|
57
57
|
end
|
|
58
58
|
|
|
59
|
+
configure :development do |config|
|
|
60
|
+
Datasets.reset!
|
|
61
|
+
use Rack::Reloader
|
|
62
|
+
end
|
|
63
|
+
|
|
59
64
|
# Hang on to the Rack IO in order to do unbuffered reads.
|
|
60
65
|
# use Rack::Config do |env|
|
|
61
66
|
# env['rack.input'], env['data.input'] = StringIO.new, env['rack.input']
|
|
@@ -20,14 +20,27 @@ module OpenBEL
|
|
|
20
20
|
@spec = BELParser::Language.specification(bel_version)
|
|
21
21
|
|
|
22
22
|
# RdfRepository using Jena.
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
)
|
|
23
|
+
tdb = OpenBEL::Settings[:resource_rdf][:jena][:tdb_directory]
|
|
24
|
+
@rr = BEL::RdfRepository.plugins[:jena].create_repository(:tdb_directory => tdb)
|
|
26
25
|
|
|
27
26
|
# Annotations using RdfRepository
|
|
28
27
|
@annotations = BEL::Resource::Annotations.new(@rr)
|
|
29
28
|
# Namespaces using RdfRepository
|
|
30
|
-
@namespaces
|
|
29
|
+
@namespaces = BEL::Resource::Namespaces.new(@rr)
|
|
30
|
+
|
|
31
|
+
@supported_namespaces = Hash[
|
|
32
|
+
@namespaces.each.map { |ns|
|
|
33
|
+
prefix = ns.prefix.first.upcase
|
|
34
|
+
|
|
35
|
+
[
|
|
36
|
+
prefix,
|
|
37
|
+
BELParser::Expression::Model::Namespace.new(
|
|
38
|
+
prefix,
|
|
39
|
+
ns.uri
|
|
40
|
+
)
|
|
41
|
+
]
|
|
42
|
+
}
|
|
43
|
+
]
|
|
31
44
|
|
|
32
45
|
# Resource Search using SQLite.
|
|
33
46
|
@search = BEL::Resource::Search.plugins[:sqlite].create_search(
|
|
@@ -36,11 +49,16 @@ module OpenBEL
|
|
|
36
49
|
|
|
37
50
|
@expression_validator = BELParser::Expression::Validator.new(
|
|
38
51
|
@spec,
|
|
39
|
-
|
|
40
|
-
BELParser::Resource.
|
|
52
|
+
@supported_namespaces,
|
|
53
|
+
BELParser::Resource::JenaTDBReader.new(tdb),
|
|
41
54
|
BELParser::Resource.default_url_reader)
|
|
42
55
|
end
|
|
43
56
|
|
|
57
|
+
configure :development do |config|
|
|
58
|
+
Expressions.reset!
|
|
59
|
+
use Rack::Reloader
|
|
60
|
+
end
|
|
61
|
+
|
|
44
62
|
options '/api/expressions/*/completions' do
|
|
45
63
|
response.headers['Allow'] = 'OPTIONS,GET'
|
|
46
64
|
status 200
|
|
@@ -177,7 +195,9 @@ module OpenBEL
|
|
|
177
195
|
statement =
|
|
178
196
|
BELParser::Expression.parse_statements(
|
|
179
197
|
bel,
|
|
180
|
-
@spec
|
|
198
|
+
@spec,
|
|
199
|
+
@supported_namespaces
|
|
200
|
+
)
|
|
181
201
|
halt 404 unless statement
|
|
182
202
|
|
|
183
203
|
response.headers['Content-Type'] = 'application/json'
|
|
@@ -18,6 +18,11 @@ module OpenBEL
|
|
|
18
18
|
@spec = BELParser::Language.specification(bel_version)
|
|
19
19
|
end
|
|
20
20
|
|
|
21
|
+
configure :development do |config|
|
|
22
|
+
Language.reset!
|
|
23
|
+
use Rack::Reloader
|
|
24
|
+
end
|
|
25
|
+
|
|
21
26
|
options '/api/language' do
|
|
22
27
|
response.headers['Allow'] = 'OPTIONS,GET'
|
|
23
28
|
status 200
|
data/bin/setup-docker.sh
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
# run via: bash <(curl -s https://raw.githubusercontent.com/OpenBEL/openbel-api/master/bin/setup-docker.sh)
|
|
4
|
+
|
|
5
|
+
hash docker 2>/dev/null || { echo >&2 "I require docker. Please install. Aborting."; exit 1; }
|
|
6
|
+
hash docker-compose 2>/dev/null || { echo >&2 "I require docker-compose. Please install. Aborting."; exit 1; }
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
ssh_status=$(ssh -o BatchMode=yes -o ConnectTimeout=5 git@github.com 2>&1)
|
|
10
|
+
|
|
11
|
+
if [[ $ssh_status == *"successfully authenticated"* ]] ; then
|
|
12
|
+
clone_cmd="git clone git@github.com:OpenBEL/openbel-api.git";
|
|
13
|
+
else
|
|
14
|
+
clone_cmd="git clone https://github.com/OpenBEL/openbel-api.git";
|
|
15
|
+
fi
|
|
16
|
+
|
|
17
|
+
if [ ! -d "openbel-api" ]; then
|
|
18
|
+
$clone_cmd
|
|
19
|
+
else
|
|
20
|
+
cd openbel-api;
|
|
21
|
+
git pull;
|
|
22
|
+
cd ..;
|
|
23
|
+
fi
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
cd openbel-api
|
|
27
|
+
git submodule update --init # Update project submodules (in the ./subprojects directory)
|
|
28
|
+
HOME=$(pwd)
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
# Download and bunzip2 datasets
|
|
32
|
+
if [ ! -d "$HOME/data/rdf_resources" ]; then
|
|
33
|
+
mkdir -p $HOME/data/rdf_resources
|
|
34
|
+
cd $HOME/data/rdf_resources
|
|
35
|
+
curl -O http://datasets.openbel.org/biological-concepts-rdf.db.bz2
|
|
36
|
+
bunzip2 biological-concepts-rdf.db.bz2
|
|
37
|
+
fi
|
|
38
|
+
|
|
39
|
+
if [ ! -d "$HOME/data/rdf_store" ]; then
|
|
40
|
+
mkdir -p $HOME/data
|
|
41
|
+
cd $HOME/data
|
|
42
|
+
curl -O http://datasets.openbel.org/rdf_store.tar.bz2
|
|
43
|
+
bunzip2 rdf_store.tar.bz2
|
|
44
|
+
tar xvf rdf_store.tar
|
|
45
|
+
rm rdf_store.tar
|
|
46
|
+
fi
|
|
47
|
+
|
|
48
|
+
cd $HOME
|
|
49
|
+
|
|
50
|
+
if [ ! -f "$HOME/config/config.yml" ]; then
|
|
51
|
+
cp config/config.yml.example config/config.yml
|
|
52
|
+
fi
|
|
53
|
+
|
|
54
|
+
printf "Remember to configure config/config.yml\n\n"
|
|
55
|
+
|
|
56
|
+
echo "To start the dev docker instance: "
|
|
57
|
+
echo " docker-compose build"
|
|
58
|
+
echo " docker-compose up"
|
|
59
|
+
|
|
60
|
+
printf "\n\nTo run production docker: "
|
|
61
|
+
echo " docker-compose -f docker-compose-prod.yml build"
|
|
62
|
+
echo " docker-compose -f docker-compose-prod.yml up"
|
data/config/config.yml
CHANGED
|
@@ -8,7 +8,7 @@ bel:
|
|
|
8
8
|
# (BEL version 1.0 specification)
|
|
9
9
|
# 2.0
|
|
10
10
|
# (BEL version 2.0 specification)
|
|
11
|
-
version:
|
|
11
|
+
version: 1.0
|
|
12
12
|
|
|
13
13
|
# Storage of nanopubs through the Mongo database.
|
|
14
14
|
nanopub_store:
|
|
@@ -16,8 +16,8 @@ nanopub_store:
|
|
|
16
16
|
|
|
17
17
|
# The MongoDB host to connect to. For example if MongoDB's net.bindIp
|
|
18
18
|
# setting is configured as 127.0.0.1 we should be able to connect using
|
|
19
|
-
# localhost.
|
|
20
|
-
host: '
|
|
19
|
+
# 'localhost'. We use 'mongodb' for use in the docker-compose file.
|
|
20
|
+
host: 'mongodb'
|
|
21
21
|
|
|
22
22
|
# The default MongoDB port. Configured under MongoDB's `net.port` setting.
|
|
23
23
|
port: 27017
|
|
@@ -51,12 +51,12 @@ nanopub_store:
|
|
|
51
51
|
# RDF dataset for BEL datasets, annotations, and namespaces using Apache Jena.
|
|
52
52
|
resource_rdf:
|
|
53
53
|
jena:
|
|
54
|
-
tdb_directory: '
|
|
54
|
+
tdb_directory: '/data/rdf_store'
|
|
55
55
|
|
|
56
56
|
# Full-text search over annotation and namespace values using SQLite.
|
|
57
57
|
resource_search:
|
|
58
58
|
sqlite:
|
|
59
|
-
database_file: 'biological-concepts-rdf.db'
|
|
59
|
+
database_file: '/data/rdf_resources/biological-concepts-rdf.db'
|
|
60
60
|
|
|
61
61
|
# Set a secret used during session creation....
|
|
62
62
|
session_secret: 'changeme'
|
|
@@ -66,5 +66,8 @@ auth:
|
|
|
66
66
|
# Controls whether the API requires authentication
|
|
67
67
|
enabled: false
|
|
68
68
|
# Used by the auth middleware to decode and verify the JWT
|
|
69
|
-
|
|
69
|
+
secret: |
|
|
70
|
+
-----BEGIN PUBLIC KEY-----
|
|
71
|
+
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu77nUtVw7SIIcUTSiStzMPB7BGB/9eS+CpppsUaiyZyWCXlrALT3YdqneSlpX4Ta+0wvhOkKQtoSS8dCH8GIi7esAmfdHetHfRgeDXHAlXo8HIzshUzODg3ysT7j+Ha3eJsO+LNS/omHDhsarP8Z2eThW876iKJCCc/mB76a6u1e4Id+52K5lG++m8Pn4Gs+cqd2sKUKcMJ9CkJ6dBIdGlXHMoOHj4C33SPrEG/vEBv5cu0l5PP3RiBAuaZHpLKzfIiaLOpj/k4dD/weVt5gwTIJn16AEgPD7173Xef0HgoPlQInDFrJwsGpYCnIPZWSxRbvjKkya2Auj0QZyMCrXwIDAQAB
|
|
72
|
+
-----END PUBLIC KEY-----
|
|
70
73
|
|
metadata
CHANGED
|
@@ -1,348 +1,348 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: openbel-api
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.0.
|
|
4
|
+
version: 1.0.4
|
|
5
5
|
platform: java
|
|
6
6
|
authors:
|
|
7
7
|
- Anthony Bargnesi
|
|
8
8
|
- Nick Bargnesi
|
|
9
9
|
- William Hayes
|
|
10
|
-
autorequire:
|
|
10
|
+
autorequire:
|
|
11
11
|
bindir: bin
|
|
12
12
|
cert_chain: []
|
|
13
13
|
date: 2016-03-23 00:00:00.000000000 Z
|
|
14
14
|
dependencies:
|
|
15
15
|
- !ruby/object:Gem::Dependency
|
|
16
|
+
name: bel
|
|
16
17
|
requirement: !ruby/object:Gem::Requirement
|
|
17
18
|
requirements:
|
|
18
19
|
- - "~>"
|
|
19
20
|
- !ruby/object:Gem::Version
|
|
20
21
|
version: 1.0.0
|
|
21
|
-
name: bel
|
|
22
|
-
prerelease: false
|
|
23
22
|
type: :runtime
|
|
23
|
+
prerelease: false
|
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
|
25
25
|
requirements:
|
|
26
26
|
- - "~>"
|
|
27
27
|
- !ruby/object:Gem::Version
|
|
28
28
|
version: 1.0.0
|
|
29
29
|
- !ruby/object:Gem::Dependency
|
|
30
|
+
name: json-ld
|
|
30
31
|
requirement: !ruby/object:Gem::Requirement
|
|
31
32
|
requirements:
|
|
32
33
|
- - '='
|
|
33
34
|
- !ruby/object:Gem::Version
|
|
34
35
|
version: 2.0.0
|
|
35
|
-
name: json-ld
|
|
36
|
-
prerelease: false
|
|
37
36
|
type: :runtime
|
|
37
|
+
prerelease: false
|
|
38
38
|
version_requirements: !ruby/object:Gem::Requirement
|
|
39
39
|
requirements:
|
|
40
40
|
- - '='
|
|
41
41
|
- !ruby/object:Gem::Version
|
|
42
42
|
version: 2.0.0
|
|
43
43
|
- !ruby/object:Gem::Dependency
|
|
44
|
+
name: rdf-json
|
|
44
45
|
requirement: !ruby/object:Gem::Requirement
|
|
45
46
|
requirements:
|
|
46
47
|
- - '='
|
|
47
48
|
- !ruby/object:Gem::Version
|
|
48
49
|
version: 2.0.0
|
|
49
|
-
name: rdf-json
|
|
50
|
-
prerelease: false
|
|
51
50
|
type: :runtime
|
|
51
|
+
prerelease: false
|
|
52
52
|
version_requirements: !ruby/object:Gem::Requirement
|
|
53
53
|
requirements:
|
|
54
54
|
- - '='
|
|
55
55
|
- !ruby/object:Gem::Version
|
|
56
56
|
version: 2.0.0
|
|
57
57
|
- !ruby/object:Gem::Dependency
|
|
58
|
+
name: rdf-rdfa
|
|
58
59
|
requirement: !ruby/object:Gem::Requirement
|
|
59
60
|
requirements:
|
|
60
61
|
- - '='
|
|
61
62
|
- !ruby/object:Gem::Version
|
|
62
63
|
version: 2.0.0
|
|
63
|
-
name: rdf-rdfa
|
|
64
|
-
prerelease: false
|
|
65
64
|
type: :runtime
|
|
65
|
+
prerelease: false
|
|
66
66
|
version_requirements: !ruby/object:Gem::Requirement
|
|
67
67
|
requirements:
|
|
68
68
|
- - '='
|
|
69
69
|
- !ruby/object:Gem::Version
|
|
70
70
|
version: 2.0.0
|
|
71
71
|
- !ruby/object:Gem::Dependency
|
|
72
|
+
name: rdf-rdfxml
|
|
72
73
|
requirement: !ruby/object:Gem::Requirement
|
|
73
74
|
requirements:
|
|
74
75
|
- - '='
|
|
75
76
|
- !ruby/object:Gem::Version
|
|
76
77
|
version: 2.0.0
|
|
77
|
-
name: rdf-rdfxml
|
|
78
|
-
prerelease: false
|
|
79
78
|
type: :runtime
|
|
79
|
+
prerelease: false
|
|
80
80
|
version_requirements: !ruby/object:Gem::Requirement
|
|
81
81
|
requirements:
|
|
82
82
|
- - '='
|
|
83
83
|
- !ruby/object:Gem::Version
|
|
84
84
|
version: 2.0.0
|
|
85
85
|
- !ruby/object:Gem::Dependency
|
|
86
|
+
name: rdf-trig
|
|
86
87
|
requirement: !ruby/object:Gem::Requirement
|
|
87
88
|
requirements:
|
|
88
89
|
- - '='
|
|
89
90
|
- !ruby/object:Gem::Version
|
|
90
91
|
version: 2.0.0
|
|
91
|
-
name: rdf-trig
|
|
92
|
-
prerelease: false
|
|
93
92
|
type: :runtime
|
|
93
|
+
prerelease: false
|
|
94
94
|
version_requirements: !ruby/object:Gem::Requirement
|
|
95
95
|
requirements:
|
|
96
96
|
- - '='
|
|
97
97
|
- !ruby/object:Gem::Version
|
|
98
98
|
version: 2.0.0
|
|
99
99
|
- !ruby/object:Gem::Dependency
|
|
100
|
+
name: rdf-trix
|
|
100
101
|
requirement: !ruby/object:Gem::Requirement
|
|
101
102
|
requirements:
|
|
102
103
|
- - '='
|
|
103
104
|
- !ruby/object:Gem::Version
|
|
104
105
|
version: 2.0.0
|
|
105
|
-
name: rdf-trix
|
|
106
|
-
prerelease: false
|
|
107
106
|
type: :runtime
|
|
107
|
+
prerelease: false
|
|
108
108
|
version_requirements: !ruby/object:Gem::Requirement
|
|
109
109
|
requirements:
|
|
110
110
|
- - '='
|
|
111
111
|
- !ruby/object:Gem::Version
|
|
112
112
|
version: 2.0.0
|
|
113
113
|
- !ruby/object:Gem::Dependency
|
|
114
|
+
name: rdf-turtle
|
|
114
115
|
requirement: !ruby/object:Gem::Requirement
|
|
115
116
|
requirements:
|
|
116
117
|
- - '='
|
|
117
118
|
- !ruby/object:Gem::Version
|
|
118
119
|
version: 2.0.0
|
|
119
|
-
name: rdf-turtle
|
|
120
|
-
prerelease: false
|
|
121
120
|
type: :runtime
|
|
121
|
+
prerelease: false
|
|
122
122
|
version_requirements: !ruby/object:Gem::Requirement
|
|
123
123
|
requirements:
|
|
124
124
|
- - '='
|
|
125
125
|
- !ruby/object:Gem::Version
|
|
126
126
|
version: 2.0.0
|
|
127
127
|
- !ruby/object:Gem::Dependency
|
|
128
|
+
name: bel-search-sqlite
|
|
128
129
|
requirement: !ruby/object:Gem::Requirement
|
|
129
130
|
requirements:
|
|
130
131
|
- - "~>"
|
|
131
132
|
- !ruby/object:Gem::Version
|
|
132
133
|
version: 1.0.0
|
|
133
|
-
name: bel-search-sqlite
|
|
134
|
-
prerelease: false
|
|
135
134
|
type: :runtime
|
|
135
|
+
prerelease: false
|
|
136
136
|
version_requirements: !ruby/object:Gem::Requirement
|
|
137
137
|
requirements:
|
|
138
138
|
- - "~>"
|
|
139
139
|
- !ruby/object:Gem::Version
|
|
140
140
|
version: 1.0.0
|
|
141
141
|
- !ruby/object:Gem::Dependency
|
|
142
|
+
name: bel-rdf-jena
|
|
142
143
|
requirement: !ruby/object:Gem::Requirement
|
|
143
144
|
requirements:
|
|
144
145
|
- - "~>"
|
|
145
146
|
- !ruby/object:Gem::Version
|
|
146
147
|
version: 1.0.0
|
|
147
|
-
name: bel-rdf-jena
|
|
148
|
-
prerelease: false
|
|
149
148
|
type: :runtime
|
|
149
|
+
prerelease: false
|
|
150
150
|
version_requirements: !ruby/object:Gem::Requirement
|
|
151
151
|
requirements:
|
|
152
152
|
- - "~>"
|
|
153
153
|
- !ruby/object:Gem::Version
|
|
154
154
|
version: 1.0.0
|
|
155
155
|
- !ruby/object:Gem::Dependency
|
|
156
|
+
name: mongo
|
|
156
157
|
requirement: !ruby/object:Gem::Requirement
|
|
157
158
|
requirements:
|
|
158
159
|
- - '='
|
|
159
160
|
- !ruby/object:Gem::Version
|
|
160
161
|
version: 1.12.5
|
|
161
|
-
name: mongo
|
|
162
|
-
prerelease: false
|
|
163
162
|
type: :runtime
|
|
163
|
+
prerelease: false
|
|
164
164
|
version_requirements: !ruby/object:Gem::Requirement
|
|
165
165
|
requirements:
|
|
166
166
|
- - '='
|
|
167
167
|
- !ruby/object:Gem::Version
|
|
168
168
|
version: 1.12.5
|
|
169
169
|
- !ruby/object:Gem::Dependency
|
|
170
|
+
name: bson
|
|
170
171
|
requirement: !ruby/object:Gem::Requirement
|
|
171
172
|
requirements:
|
|
172
173
|
- - '='
|
|
173
174
|
- !ruby/object:Gem::Version
|
|
174
175
|
version: 1.12.5
|
|
175
|
-
name: bson
|
|
176
|
-
prerelease: false
|
|
177
176
|
type: :runtime
|
|
177
|
+
prerelease: false
|
|
178
178
|
version_requirements: !ruby/object:Gem::Requirement
|
|
179
179
|
requirements:
|
|
180
180
|
- - '='
|
|
181
181
|
- !ruby/object:Gem::Version
|
|
182
182
|
version: 1.12.5
|
|
183
183
|
- !ruby/object:Gem::Dependency
|
|
184
|
+
name: dot_hash
|
|
184
185
|
requirement: !ruby/object:Gem::Requirement
|
|
185
186
|
requirements:
|
|
186
187
|
- - '='
|
|
187
188
|
- !ruby/object:Gem::Version
|
|
188
189
|
version: 0.5.9
|
|
189
|
-
name: dot_hash
|
|
190
|
-
prerelease: false
|
|
191
190
|
type: :runtime
|
|
191
|
+
prerelease: false
|
|
192
192
|
version_requirements: !ruby/object:Gem::Requirement
|
|
193
193
|
requirements:
|
|
194
194
|
- - '='
|
|
195
195
|
- !ruby/object:Gem::Version
|
|
196
196
|
version: 0.5.9
|
|
197
197
|
- !ruby/object:Gem::Dependency
|
|
198
|
+
name: jrjackson
|
|
198
199
|
requirement: !ruby/object:Gem::Requirement
|
|
199
200
|
requirements:
|
|
200
201
|
- - '='
|
|
201
202
|
- !ruby/object:Gem::Version
|
|
202
203
|
version: 0.3.7
|
|
203
|
-
name: jrjackson
|
|
204
|
-
prerelease: false
|
|
205
204
|
type: :runtime
|
|
205
|
+
prerelease: false
|
|
206
206
|
version_requirements: !ruby/object:Gem::Requirement
|
|
207
207
|
requirements:
|
|
208
208
|
- - '='
|
|
209
209
|
- !ruby/object:Gem::Version
|
|
210
210
|
version: 0.3.7
|
|
211
211
|
- !ruby/object:Gem::Dependency
|
|
212
|
+
name: json_schema
|
|
212
213
|
requirement: !ruby/object:Gem::Requirement
|
|
213
214
|
requirements:
|
|
214
215
|
- - '='
|
|
215
216
|
- !ruby/object:Gem::Version
|
|
216
217
|
version: 0.10.0
|
|
217
|
-
name: json_schema
|
|
218
|
-
prerelease: false
|
|
219
218
|
type: :runtime
|
|
219
|
+
prerelease: false
|
|
220
220
|
version_requirements: !ruby/object:Gem::Requirement
|
|
221
221
|
requirements:
|
|
222
222
|
- - '='
|
|
223
223
|
- !ruby/object:Gem::Version
|
|
224
224
|
version: 0.10.0
|
|
225
225
|
- !ruby/object:Gem::Dependency
|
|
226
|
+
name: multi_json
|
|
226
227
|
requirement: !ruby/object:Gem::Requirement
|
|
227
228
|
requirements:
|
|
228
229
|
- - '='
|
|
229
230
|
- !ruby/object:Gem::Version
|
|
230
231
|
version: 1.11.2
|
|
231
|
-
name: multi_json
|
|
232
|
-
prerelease: false
|
|
233
232
|
type: :runtime
|
|
233
|
+
prerelease: false
|
|
234
234
|
version_requirements: !ruby/object:Gem::Requirement
|
|
235
235
|
requirements:
|
|
236
236
|
- - '='
|
|
237
237
|
- !ruby/object:Gem::Version
|
|
238
238
|
version: 1.11.2
|
|
239
239
|
- !ruby/object:Gem::Dependency
|
|
240
|
+
name: oat
|
|
240
241
|
requirement: !ruby/object:Gem::Requirement
|
|
241
242
|
requirements:
|
|
242
243
|
- - '='
|
|
243
244
|
- !ruby/object:Gem::Version
|
|
244
245
|
version: 0.4.6
|
|
245
|
-
name: oat
|
|
246
|
-
prerelease: false
|
|
247
246
|
type: :runtime
|
|
247
|
+
prerelease: false
|
|
248
248
|
version_requirements: !ruby/object:Gem::Requirement
|
|
249
249
|
requirements:
|
|
250
250
|
- - '='
|
|
251
251
|
- !ruby/object:Gem::Version
|
|
252
252
|
version: 0.4.6
|
|
253
253
|
- !ruby/object:Gem::Dependency
|
|
254
|
+
name: puma
|
|
254
255
|
requirement: !ruby/object:Gem::Requirement
|
|
255
256
|
requirements:
|
|
256
257
|
- - '='
|
|
257
258
|
- !ruby/object:Gem::Version
|
|
258
259
|
version: 3.1.0
|
|
259
|
-
name: puma
|
|
260
|
-
prerelease: false
|
|
261
260
|
type: :runtime
|
|
261
|
+
prerelease: false
|
|
262
262
|
version_requirements: !ruby/object:Gem::Requirement
|
|
263
263
|
requirements:
|
|
264
264
|
- - '='
|
|
265
265
|
- !ruby/object:Gem::Version
|
|
266
266
|
version: 3.1.0
|
|
267
267
|
- !ruby/object:Gem::Dependency
|
|
268
|
+
name: rack
|
|
268
269
|
requirement: !ruby/object:Gem::Requirement
|
|
269
270
|
requirements:
|
|
270
271
|
- - '='
|
|
271
272
|
- !ruby/object:Gem::Version
|
|
272
273
|
version: 1.6.4
|
|
273
|
-
name: rack
|
|
274
|
-
prerelease: false
|
|
275
274
|
type: :runtime
|
|
275
|
+
prerelease: false
|
|
276
276
|
version_requirements: !ruby/object:Gem::Requirement
|
|
277
277
|
requirements:
|
|
278
278
|
- - '='
|
|
279
279
|
- !ruby/object:Gem::Version
|
|
280
280
|
version: 1.6.4
|
|
281
281
|
- !ruby/object:Gem::Dependency
|
|
282
|
+
name: rack-cors
|
|
282
283
|
requirement: !ruby/object:Gem::Requirement
|
|
283
284
|
requirements:
|
|
284
285
|
- - '='
|
|
285
286
|
- !ruby/object:Gem::Version
|
|
286
287
|
version: 0.4.0
|
|
287
|
-
name: rack-cors
|
|
288
|
-
prerelease: false
|
|
289
288
|
type: :runtime
|
|
289
|
+
prerelease: false
|
|
290
290
|
version_requirements: !ruby/object:Gem::Requirement
|
|
291
291
|
requirements:
|
|
292
292
|
- - '='
|
|
293
293
|
- !ruby/object:Gem::Version
|
|
294
294
|
version: 0.4.0
|
|
295
295
|
- !ruby/object:Gem::Dependency
|
|
296
|
+
name: rack-handlers
|
|
296
297
|
requirement: !ruby/object:Gem::Requirement
|
|
297
298
|
requirements:
|
|
298
299
|
- - '='
|
|
299
300
|
- !ruby/object:Gem::Version
|
|
300
301
|
version: 0.7.0
|
|
301
|
-
name: rack-handlers
|
|
302
|
-
prerelease: false
|
|
303
302
|
type: :runtime
|
|
303
|
+
prerelease: false
|
|
304
304
|
version_requirements: !ruby/object:Gem::Requirement
|
|
305
305
|
requirements:
|
|
306
306
|
- - '='
|
|
307
307
|
- !ruby/object:Gem::Version
|
|
308
308
|
version: 0.7.0
|
|
309
309
|
- !ruby/object:Gem::Dependency
|
|
310
|
+
name: sinatra
|
|
310
311
|
requirement: !ruby/object:Gem::Requirement
|
|
311
312
|
requirements:
|
|
312
313
|
- - '='
|
|
313
314
|
- !ruby/object:Gem::Version
|
|
314
315
|
version: 1.4.6
|
|
315
|
-
name: sinatra
|
|
316
|
-
prerelease: false
|
|
317
316
|
type: :runtime
|
|
317
|
+
prerelease: false
|
|
318
318
|
version_requirements: !ruby/object:Gem::Requirement
|
|
319
319
|
requirements:
|
|
320
320
|
- - '='
|
|
321
321
|
- !ruby/object:Gem::Version
|
|
322
322
|
version: 1.4.6
|
|
323
323
|
- !ruby/object:Gem::Dependency
|
|
324
|
+
name: sinatra-contrib
|
|
324
325
|
requirement: !ruby/object:Gem::Requirement
|
|
325
326
|
requirements:
|
|
326
327
|
- - '='
|
|
327
328
|
- !ruby/object:Gem::Version
|
|
328
329
|
version: 1.4.6
|
|
329
|
-
name: sinatra-contrib
|
|
330
|
-
prerelease: false
|
|
331
330
|
type: :runtime
|
|
331
|
+
prerelease: false
|
|
332
332
|
version_requirements: !ruby/object:Gem::Requirement
|
|
333
333
|
requirements:
|
|
334
334
|
- - '='
|
|
335
335
|
- !ruby/object:Gem::Version
|
|
336
336
|
version: 1.4.6
|
|
337
337
|
- !ruby/object:Gem::Dependency
|
|
338
|
+
name: jwt
|
|
338
339
|
requirement: !ruby/object:Gem::Requirement
|
|
339
340
|
requirements:
|
|
340
341
|
- - '='
|
|
341
342
|
- !ruby/object:Gem::Version
|
|
342
343
|
version: 1.5.2
|
|
343
|
-
name: jwt
|
|
344
|
-
prerelease: false
|
|
345
344
|
type: :runtime
|
|
345
|
+
prerelease: false
|
|
346
346
|
version_requirements: !ruby/object:Gem::Requirement
|
|
347
347
|
requirements:
|
|
348
348
|
- - '='
|
|
@@ -351,8 +351,9 @@ dependencies:
|
|
|
351
351
|
description: The OpenBEL API provides a RESTful API over HTTP to manage BEL knowledge.
|
|
352
352
|
email: abargnesi@selventa.com
|
|
353
353
|
executables:
|
|
354
|
-
- openbel-config
|
|
355
354
|
- openbel-api
|
|
355
|
+
- openbel-config
|
|
356
|
+
- setup-docker.sh
|
|
356
357
|
extensions: []
|
|
357
358
|
extra_rdoc_files: []
|
|
358
359
|
files:
|
|
@@ -408,6 +409,7 @@ files:
|
|
|
408
409
|
- app/openbel/api/version.rb
|
|
409
410
|
- bin/openbel-api
|
|
410
411
|
- bin/openbel-config
|
|
412
|
+
- bin/setup-docker.sh
|
|
411
413
|
- config/config.yml
|
|
412
414
|
- config/server_config.rb
|
|
413
415
|
- lib/openbel/api/cache/cache.rb
|
|
@@ -428,11 +430,11 @@ files:
|
|
|
428
430
|
- lib/openbel/api/plugin/plugin_repository.rb
|
|
429
431
|
- lib/openbel/api/storage/cache_proxy.rb
|
|
430
432
|
- lib/openbel/api/storage/triple_storage.rb
|
|
431
|
-
homepage: https://github.com/OpenBEL/openbel-
|
|
433
|
+
homepage: https://github.com/OpenBEL/openbel-api
|
|
432
434
|
licenses:
|
|
433
435
|
- Apache-2.0
|
|
434
436
|
metadata: {}
|
|
435
|
-
post_install_message:
|
|
437
|
+
post_install_message:
|
|
436
438
|
rdoc_options: []
|
|
437
439
|
require_paths:
|
|
438
440
|
- app
|
|
@@ -448,9 +450,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
448
450
|
- !ruby/object:Gem::Version
|
|
449
451
|
version: '0'
|
|
450
452
|
requirements: []
|
|
451
|
-
rubyforge_project:
|
|
452
|
-
rubygems_version: 2.6
|
|
453
|
-
signing_key:
|
|
453
|
+
rubyforge_project:
|
|
454
|
+
rubygems_version: 2.4.6
|
|
455
|
+
signing_key:
|
|
454
456
|
specification_version: 4
|
|
455
457
|
summary: The OpenBEL API provided over RESTful HTTP endpoints.
|
|
456
458
|
test_files: []
|