yoti 1.0.2 → 1.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/CONTRIBUTING.md +1 -1
- data/LICENSE.md +23 -0
- data/README.md +71 -21
- data/Rakefile +2 -2
- data/lib/yoti/configuration.rb +5 -4
- data/lib/yoti/request.rb +1 -0
- data/lib/yoti/version.rb +1 -1
- data/yoti.gemspec +5 -4
- metadata +8 -8
- data/LICENSE.txt +0 -202
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f94e5f9c2f83cc70f4bf1a18188e27acb47f61cb
|
4
|
+
data.tar.gz: d4f76df114cd63accfe3d28da9f3895b498ba709
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9e5775c842fa28100fcd88a2f1a8383211bbcbbb4c060f2aeffe1624be53e219f85be045e4e7dcf3fbb9b707af18119db9a97cf4b2d4321ce304b9b7b994e5a4
|
7
|
+
data.tar.gz: 664c852640e703f8ec8431027e7a9bcdf6aa010df409065a8e0eed19b3f7c3a8b7f107e22563274a48f54b76ac23022b25018dfa9a00d8ef86f5a3c700c7fdaa
|
data/CHANGELOG.md
CHANGED
@@ -4,6 +4,10 @@ All notable changes to this project will be documented in this file.
|
|
4
4
|
The format is based on [Keep a Changelog](http://keepachangelog.com/)
|
5
5
|
and this project adheres to [Semantic Versioning](http://semver.org/).
|
6
6
|
|
7
|
+
## 1.0.3 - 2017-10-17
|
8
|
+
### Changed
|
9
|
+
- Switched from proprietary to MIT license
|
10
|
+
|
7
11
|
## 1.0.2 - 2017-03-15
|
8
12
|
### Added
|
9
13
|
- Allow empty profiles
|
data/CONTRIBUTING.md
CHANGED
@@ -103,7 +103,7 @@ Commit messages should ideally start with one of the following verbs:
|
|
103
103
|
## Publishing a new release
|
104
104
|
|
105
105
|
* Update the [changelog](CHANGELOG.md) and the [lib/yoti/version.rb](lib/yoti/version.rb) file
|
106
|
-
* Create a new release on [GitHub](https://github.com/getyoti/ruby/releases)
|
106
|
+
* Create a new release on [GitHub](https://github.com/getyoti/yoti-ruby-sdk/releases)
|
107
107
|
* Build the gem and push it to [RubyGems](https://rubygems.org/gems/yoti)
|
108
108
|
|
109
109
|
```shell
|
data/LICENSE.md
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
# MIT License
|
2
|
+
|
3
|
+
Copyright © 2017 Yoti Ltd
|
4
|
+
|
5
|
+
* * *
|
6
|
+
|
7
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
8
|
+
of this software and associated documentation files (the "Software"), to deal
|
9
|
+
in the Software without restriction, including without limitation the rights
|
10
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
11
|
+
copies of the Software, and to permit persons to whom the Software is
|
12
|
+
furnished to do so, subject to the following conditions:
|
13
|
+
|
14
|
+
The above copyright notice and this permission notice shall be included in all
|
15
|
+
copies or substantial portions of the Software.
|
16
|
+
|
17
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
18
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
19
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
20
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
21
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
22
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
23
|
+
SOFTWARE.
|
data/README.md
CHANGED
@@ -1,19 +1,58 @@
|
|
1
1
|
# Yoti Ruby SDK
|
2
2
|
|
3
|
+
Welcome to the Yoti Ruby SDK. This repository contains the tools you need to quickly integrate your Ruby back-end with Yoti so that your users can share their identity details with your application in a secure and trusted way.
|
3
4
|
|
4
|
-
|
5
|
+
## Table of Contents
|
6
|
+
|
7
|
+
1) [An Architectural view](#an-architectural-view) -
|
8
|
+
High level overview of integration
|
9
|
+
|
10
|
+
2) [References](#references)-
|
11
|
+
Guides before you start
|
12
|
+
|
13
|
+
3) [Requirements](#requirements)-
|
14
|
+
Everything you need to get started
|
15
|
+
|
16
|
+
4) [Installing the SDK](#installing-the-sdk)-
|
17
|
+
How to install our SDK
|
18
|
+
|
19
|
+
5) [SDK Project import](#sdk-project-import)-
|
20
|
+
How to install the SDK to your project
|
21
|
+
|
22
|
+
6) [Configuration](#configuration)-
|
23
|
+
entry point explanation
|
24
|
+
|
25
|
+
7) [Profile Retrieval](#profile-retrieval)-
|
26
|
+
How to retrieve a Yoti profile using the token
|
27
|
+
|
28
|
+
8) [Handling users](#handling-users)-
|
29
|
+
How to manage users
|
30
|
+
|
31
|
+
9) [API Coverage](#api-coverage)-
|
32
|
+
Attributes defined
|
33
|
+
|
34
|
+
10) [Running the examples](running-the-examples)-
|
35
|
+
Attributes defined
|
36
|
+
|
37
|
+
11) [Support](#support)-
|
38
|
+
Please feel free to reach out
|
39
|
+
|
40
|
+
12) [Change Log](#change-log)
|
41
|
+
|
42
|
+
13) [License](#license)
|
43
|
+
|
44
|
+
## An Architectural view
|
5
45
|
|
6
|
-
## An architectural view
|
7
46
|
To integrate your application with Yoti, your back-end must expose a GET endpoint that Yoti will use to forward tokens.
|
8
47
|
The endpoint can be configured in your Yoti Dashboard when you create/update your application. It can be found in the Integration section under the Callback URL name.
|
9
48
|
|
10
|
-
The image below shows how your application back-end and Yoti integrate
|
49
|
+
The image below shows how your application back-end and Yoti integrate into the context of a Login flow.
|
11
50
|
Yoti SDK carries out for you steps 6, 7, 8 and the profile decryption in step 9.
|
12
51
|
|
13
52
|
![alt text](login_flow.png "Login flow")
|
14
53
|
|
15
54
|
|
16
|
-
Yoti also allows you to enable user details verification from your mobile app by means of the Android (TBA) and iOS (TBA) SDKs. In that scenario, your Yoti-enabled mobile app is playing both the role of the browser and the Yoti app. Your back-end doesn't need to handle these cases in a significantly different way, but you might decide to handle the `User-Agent` header in order to provide different responses for
|
55
|
+
Yoti also allows you to enable user details verification from your mobile app by means of the Android (TBA) and iOS (TBA) SDKs. In that scenario, your Yoti-enabled mobile app is playing both the role of the browser and the Yoti app. Your back-end doesn't need to handle these cases in a significantly different way, but you might decide to handle the `User-Agent` header in order to provide different responses for desktop and mobile clients.
|
17
56
|
|
18
57
|
## References
|
19
58
|
|
@@ -36,15 +75,15 @@ If you're using a version of Ruby lower than 2.2.2 you might encounter issues wh
|
|
36
75
|
gem activesupport '~> 4.2'
|
37
76
|
```
|
38
77
|
|
39
|
-
|
78
|
+
Versions of [Bundler][] > 1.13 will sort this dependency issue automatically. More info in this [comment][] by André Arko.
|
40
79
|
|
41
80
|
[comment]: https://github.com/bundler/bundler-features/issues/120#issuecomment-214514847
|
42
81
|
[Bundler]: http://bundler.io/
|
43
82
|
[Active Support]: https://rubygems.org/gems/activesupport/
|
44
83
|
|
45
|
-
##
|
84
|
+
## Installing the SDK
|
46
85
|
|
47
|
-
|
86
|
+
To import the Yoti SDK inside your project, add this line to your application's Gemfile:
|
48
87
|
|
49
88
|
```ruby
|
50
89
|
gem 'yoti'
|
@@ -56,13 +95,13 @@ And then execute:
|
|
56
95
|
$ bundle install
|
57
96
|
```
|
58
97
|
|
59
|
-
Or
|
98
|
+
Or simply run the following command from your terminal:
|
60
99
|
|
61
100
|
```shell
|
62
101
|
$ [sudo] gem install yoti
|
63
102
|
```
|
64
103
|
|
65
|
-
|
104
|
+
## SDK Project import
|
66
105
|
|
67
106
|
The gem provides a generator for the initialization file:
|
68
107
|
|
@@ -72,12 +111,6 @@ $ rails generate yoti:install
|
|
72
111
|
|
73
112
|
The generated initialisation file can be found in `config/initializers/yoti.rb`.
|
74
113
|
|
75
|
-
Make sure the following environment variables can be accessed by your app:
|
76
|
-
|
77
|
-
`YOTI_CLIENT_SDK_ID` - found on the *Integrations* settings page
|
78
|
-
|
79
|
-
`YOTI_KEY_FILE_PATH` - the full path to your security key downloaded from the *Keys* settings page (e.g. /Users/developer/access-security.pem)
|
80
|
-
|
81
114
|
## Configuration
|
82
115
|
|
83
116
|
A minimal Yoti client initialisation looks like this:
|
@@ -88,14 +121,20 @@ Yoti.configure do |config|
|
|
88
121
|
config.key_file_path = ENV['YOTI_KEY_FILE_PATH']
|
89
122
|
end
|
90
123
|
```
|
124
|
+
Make sure the following environment variables can be accessed by your app:
|
125
|
+
|
126
|
+
`YOTI_CLIENT_SDK_ID` - found on the Key settings page on your application dashboard
|
127
|
+
|
128
|
+
`YOTI_KEY_FILE_PATH` - the full path to your security key downloaded from the *Keys* settings page (e.g. /Users/developer/access-security.pem)
|
129
|
+
|
91
130
|
The following options are available:
|
92
131
|
|
93
132
|
Config | Required | Default | Note
|
94
133
|
---------------------|----------|----------------------|-----
|
95
134
|
`client_sdk_id` | Yes | | SDK identifier generated by when you publish your app
|
96
135
|
`key_file_path` | Yes | | Path to the pem file generated when you create your app
|
97
|
-
`api_url` | No | https://api.yoti.com |
|
98
|
-
`api_port` | No | 443 |
|
136
|
+
`api_url` | No | https://api.yoti.com | Path to Yoti URL used for debugging purposes
|
137
|
+
`api_port` | No | 443 | Path to Yoti port used for debugging purposes
|
99
138
|
|
100
139
|
Keeping your settings and access keys outside your repository is highly recommended. You can use gems like [dotenv][] to manage environment variables more easily.
|
101
140
|
|
@@ -130,9 +169,9 @@ heroku config:add YOTI_KEY ="$(cat your-access-security.pem)"
|
|
130
169
|
|
131
170
|
[Heroku Command Line]: https://devcenter.heroku.com/articles/heroku-command-line
|
132
171
|
|
133
|
-
## Usage
|
134
172
|
|
135
|
-
|
173
|
+
|
174
|
+
## Profile retrieval
|
136
175
|
|
137
176
|
When your application receives a token via the exposed endpoint (it will be assigned to a query string parameter named `token`), you can easily retrieve the user profile:
|
138
177
|
|
@@ -177,7 +216,7 @@ Where `your_user_search_function` is a piece of logic in your app that is suppos
|
|
177
216
|
The examples can be found in the [examples folder](examples).
|
178
217
|
For them to work you will need a working callback URL that your browser can redirect to. A good way of doing this is to use [ngrok][] to expose the local development URL. The callback URL for both examples will be: `http://your-local-url.domain/profile`.
|
179
218
|
|
180
|
-
The examples also use the `YOTI_APPLICATION_ID` environment variable to display the Yoti Connect button. This value can be found in your Yoti account, on the *
|
219
|
+
The examples also use the `YOTI_APPLICATION_ID` environment variable to display the Yoti Connect button. This value can be found in your Yoti account, on the *Keys* settings page.
|
181
220
|
|
182
221
|
### Ruby on Rails
|
183
222
|
|
@@ -212,11 +251,22 @@ Visiting the `http://your-local-url.domain` should show a Yoti Connect button
|
|
212
251
|
* [X] Gender `gender`
|
213
252
|
* [X] Nationality `nationality`
|
214
253
|
|
254
|
+
## Support
|
255
|
+
|
256
|
+
For any questions or support please email [sdksupport@yoti.com](mailto:sdksupport@yoti.com).
|
257
|
+
Please provide the following the get you up and working as quick as possible:
|
258
|
+
|
259
|
+
- Computer Type
|
260
|
+
- OS Version
|
261
|
+
- Version of Ruby being used
|
262
|
+
- Screenshot
|
263
|
+
|
264
|
+
|
215
265
|
## Changelog
|
216
266
|
|
217
267
|
See recent changes in the [release notes][release notes] or the [changelog](CHANGELOG.md).
|
218
268
|
|
219
|
-
[release notes]: https://github.com/getyoti/ruby/releases
|
269
|
+
[release notes]: https://github.com/getyoti/yoti-ruby-sdk/releases
|
220
270
|
|
221
271
|
## License
|
222
272
|
|
data/Rakefile
CHANGED
@@ -36,11 +36,11 @@ end
|
|
36
36
|
|
37
37
|
require 'yardstick/rake/verify'
|
38
38
|
Yardstick::Rake::Verify.new(:verify_measurements, yardstick_options) do |verify|
|
39
|
-
verify.threshold =
|
39
|
+
verify.threshold = 89.0
|
40
40
|
end
|
41
41
|
|
42
42
|
################################
|
43
43
|
# Defaults #
|
44
44
|
################################
|
45
45
|
|
46
|
-
task default: [
|
46
|
+
task default: %i[spec rubocop]
|
data/lib/yoti/configuration.rb
CHANGED
@@ -1,13 +1,14 @@
|
|
1
1
|
module Yoti
|
2
2
|
class Configuration
|
3
|
-
attr_accessor :client_sdk_id, :key_file_path, :key, :
|
4
|
-
:api_port, :api_version, :api_endpoint
|
3
|
+
attr_accessor :client_sdk_id, :key_file_path, :key, :sdk_identifier,
|
4
|
+
:api_url, :api_port, :api_version, :api_endpoint
|
5
5
|
|
6
6
|
# Set config variables by using a configuration block
|
7
7
|
def initialize
|
8
8
|
@client_sdk_id = ''
|
9
9
|
@key_file_path = ''
|
10
10
|
@key = ''
|
11
|
+
@sdk_identifier = 'Ruby'
|
11
12
|
@api_url = 'https://api.yoti.com'
|
12
13
|
@api_port = 443
|
13
14
|
@api_version = 'v1'
|
@@ -21,8 +22,8 @@ module Yoti
|
|
21
22
|
# Validates the configuration values set in instance variables
|
22
23
|
# @return [nil]
|
23
24
|
def validate
|
24
|
-
validate_required_all(%w
|
25
|
-
validate_required_any(%w
|
25
|
+
validate_required_all(%w[client_sdk_id])
|
26
|
+
validate_required_any(%w[key_file_path key])
|
26
27
|
validate_value('api_version', ['v1'])
|
27
28
|
end
|
28
29
|
|
data/lib/yoti/request.rb
CHANGED
@@ -26,6 +26,7 @@ module Yoti
|
|
26
26
|
http_req = Net::HTTP::Get.new(uri)
|
27
27
|
http_req['X-Yoti-Auth-Key'] = @auth_key
|
28
28
|
http_req['X-Yoti-Auth-Digest'] = message_signature
|
29
|
+
http_req['X-Yoti-SDK'] = @sdk_identifier
|
29
30
|
http_req['Content-Type'] = 'application/json'
|
30
31
|
http_req['Accept'] = 'application/json'
|
31
32
|
http_req
|
data/lib/yoti/version.rb
CHANGED
data/yoti.gemspec
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
# coding: utf-8
|
2
|
+
|
2
3
|
lib = File.expand_path('../lib', __FILE__)
|
3
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
5
|
require 'yoti/version'
|
@@ -6,8 +7,8 @@ require 'yoti/version'
|
|
6
7
|
Gem::Specification.new do |spec|
|
7
8
|
spec.name = 'yoti'
|
8
9
|
spec.version = Yoti::VERSION
|
9
|
-
spec.authors = ['
|
10
|
-
spec.email = ['
|
10
|
+
spec.authors = ['Sebastian Zaremba']
|
11
|
+
spec.email = ['tech@yoti.com']
|
11
12
|
|
12
13
|
spec.summary = 'Yoti Ruby SDK for back-end integration.'
|
13
14
|
spec.description = <<-EOF
|
@@ -16,8 +17,8 @@ Gem::Specification.new do |spec|
|
|
16
17
|
application in a secure and trusted way.
|
17
18
|
EOF
|
18
19
|
|
19
|
-
spec.homepage = 'https://github.com/getyoti/ruby'
|
20
|
-
spec.license = '
|
20
|
+
spec.homepage = 'https://github.com/getyoti/yoti-ruby-sdk'
|
21
|
+
spec.license = 'MIT'
|
21
22
|
|
22
23
|
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features|examples)/}) }
|
23
24
|
spec.require_paths = ['lib']
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: yoti
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
7
|
+
- Sebastian Zaremba
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-10-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: protobuf
|
@@ -155,7 +155,7 @@ description: |2
|
|
155
155
|
with Yoti, so that your users can share their identity details with your
|
156
156
|
application in a secure and trusted way.
|
157
157
|
email:
|
158
|
-
-
|
158
|
+
- tech@yoti.com
|
159
159
|
executables: []
|
160
160
|
extensions: []
|
161
161
|
extra_rdoc_files: []
|
@@ -165,7 +165,7 @@ files:
|
|
165
165
|
- CONTRIBUTING.md
|
166
166
|
- Gemfile
|
167
167
|
- Guardfile
|
168
|
-
- LICENSE.
|
168
|
+
- LICENSE.md
|
169
169
|
- README.md
|
170
170
|
- Rakefile
|
171
171
|
- lib/generators/yoti/install/install_generator.rb
|
@@ -191,9 +191,9 @@ files:
|
|
191
191
|
- rubocop.yml
|
192
192
|
- yardstick.yml
|
193
193
|
- yoti.gemspec
|
194
|
-
homepage: https://github.com/getyoti/ruby
|
194
|
+
homepage: https://github.com/getyoti/yoti-ruby-sdk
|
195
195
|
licenses:
|
196
|
-
-
|
196
|
+
- MIT
|
197
197
|
metadata: {}
|
198
198
|
post_install_message:
|
199
199
|
rdoc_options: []
|
@@ -211,7 +211,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
211
211
|
version: '0'
|
212
212
|
requirements: []
|
213
213
|
rubyforge_project:
|
214
|
-
rubygems_version: 2.6.
|
214
|
+
rubygems_version: 2.6.13
|
215
215
|
signing_key:
|
216
216
|
specification_version: 4
|
217
217
|
summary: Yoti Ruby SDK for back-end integration.
|
data/LICENSE.txt
DELETED
@@ -1,202 +0,0 @@
|
|
1
|
-
terms & conditions for DEVELOPERS
|
2
|
-
|
3
|
-
|
4
|
-
By downloading the Software (as defined below), you are accepting and agreeing to these terms and conditions (“Terms”) which constitute a legal agreement between us. If you (the Developer) do not agree with these Terms, you should not download the Software.
|
5
|
-
|
6
|
-
|
7
|
-
We are Yoti Limited (the “Provider”) a company registered in England and Wales. Our company registration number is 08998951 and our registered office is at 7-8 St. Martin’s Place, London WC2N 4JH. Our registered VAT number is 199947617. You can contact us by writing to us at: hello@yoti.com, or at our registered office.
|
8
|
-
|
9
|
-
|
10
|
-
1. Interpretation
|
11
|
-
1. Definitions:
|
12
|
-
Affiliate: in relation to a party, any entity that directly or indirectly controls, is controlled by, or is under common control with a party from time to time.
|
13
|
-
Business Day: a day other than a Saturday, Sunday or public holiday in England when banks in London are open for business.
|
14
|
-
Control: shall be as defined in section 1124 of the Corporation Tax Act 2010, and the expression change of Control shall be construed accordingly.
|
15
|
-
Dashboard: a web application provided by the Supplier for the benefit of an an individual or organisation, which allows those individuals or organisations to manage their Yoti accounts.
|
16
|
-
Developer: the individual or entity or which accepts these Terms with the Provider.
|
17
|
-
Intellectual Property Rights: patents, utility models, rights to inventions, copyright and related rights, trade marks and service marks, business names and domain names, rights in get-up, goodwill and the right to sue for passing off or unfair competition, rights in designs, rights in computer software, database rights, rights to use, and protect the confidentiality of, confidential information (including know-how and trade secrets), and any other intellectual property rights, in each case whether registered or unregistered and including all applications and rights to apply for and be granted, renewals or extensions of, and rights to claim priority from, such rights and all similar or equivalent rights or forms of protection which subsist or will subsist now or in the future in any part of the world.
|
18
|
-
Maintenance Release: release of the Software that corrects faults, adds functionality or otherwise amends or upgrades the Software.
|
19
|
-
Software: the web software development kit(s) provided to the Developer by the Provider that allows individuals and entities to communicate with the Yoti Platform and which is managed through Dashboard.
|
20
|
-
Yoti: the Provider’s digital identity verification system for exchanging attributes.
|
21
|
-
1. Unless the context otherwise requires:
|
22
|
-
|
23
|
-
|
24
|
-
1. A reference to a statute or statutory provision is a reference to it as amended or re-enacted. A reference to a statute or statutory provision includes any subordinate legislation made under that statute or statutory provision, as amended or re-enacted.
|
25
|
-
|
26
|
-
|
27
|
-
1. Any phrase introduced by the terms including, include, in particular or any similar expression, shall be construed as illustrative and shall not limit the sense of the words preceding those terms.
|
28
|
-
|
29
|
-
|
30
|
-
1. A reference to writing or written includes email.
|
31
|
-
2. Basis of contract
|
32
|
-
2.1 These Terms apply to the exclusion of any other terms that the Developer seeks to impose or incorporate, or which are implied by trade, custom, practice or course of dealing.
|
33
|
-
1. The parties agree that the provisions of Regulation 9 of the Electronic Commerce (EC Directive) Regulations 2002 shall not apply to these Terms.
|
34
|
-
3. LICENCE
|
35
|
-
1. In consideration of the sum of £1 paid by the Developer to the Provider, receipt and sufficiency of which the Provider hereby acknowledges, the Provider grants to the Developer a non-exclusive, royalty-free, revocable, worldwide licence to use the Software for the duration of these Terms.
|
36
|
-
|
37
|
-
|
38
|
-
1. In relation to scope of use:
|
39
|
-
|
40
|
-
|
41
|
-
1. for the purposes of clause 3.1, use of the Software shall be for the purpose only of developing applications for the exploitation of Yoti by customers of the Provider, or otherwise in accordance with the specific instructions of the Provider.
|
42
|
-
2. the Developer may not use the Software other than as specified in clause 3.1 and clause 3.2(a).
|
43
|
-
3. the Developer may make backup copies of the Software as may be necessary for its lawful use.
|
44
|
-
|
45
|
-
|
46
|
-
1. The Developer shall not:
|
47
|
-
|
48
|
-
1. sell, sub-license, assign or novate the benefit or burden of these Terms in whole or in part;
|
49
|
-
2. allow the Software to become the subject of any charge, lien or encumbrance; and
|
50
|
-
3. deal in any other manner with any or all of its rights and obligations under these Terms.
|
51
|
-
|
52
|
-
|
53
|
-
1. The Developer shall:
|
54
|
-
|
55
|
-
|
56
|
-
1. keep a complete and accurate record of the Developer's copying and disclosure of the Software (including any back up copies made pursuant to clause 3.2(c) above) and its users, and produce such record to the Provider on request from time to time;
|
57
|
-
2. take all reasonable steps to prevent unauthorised copying of the Software; and
|
58
|
-
3. notify the Provider as soon as it becomes aware of any unauthorised use of the Software by any person.
|
59
|
-
|
60
|
-
|
61
|
-
1. Developer’s Affiliates may make use of the Software, and Developer may grant access to the Software to such of its employees, or contractors and consultants under the direct control of the Developer (“Developer Personnel”), as necessary provided that the Developer:
|
62
|
-
|
63
|
-
|
64
|
-
1. procures that its Affiliates, and Developer Personnel are made aware of and at all times adhere to these Terms;
|
65
|
-
2. remains liable for the acts or omissions of its Affiliates and Developer Personnel as if they were its own; and
|
66
|
-
3. shall cease to make the Software available to any of its Affiliates immediately on that party ceasing to be an Affiliate, and to any of its Developer Personnel on that party ceasing to be employed or engaged by the Developer.
|
67
|
-
1. MAINTENANCE RELEASES
|
68
|
-
The Provider will provide the Developer with all Maintenance Releases generally made available to its customers.
|
69
|
-
1. Developer's obligations
|
70
|
-
|
71
|
-
1. The Developer represents, warrants and undertakes that it will use the Software in compliance with all applicable laws and shall not: (a) resell, sublicense, lease or otherwise make available to any third party the Software; (b) attempt to gain or gain unauthorised access to, or disrupt the integrity or performance of the Software; (c) modify, copy, translate or create derivative works based on the Software or attempt to discover the source code or underlying ideas or algorithms thereof; (d) reverse engineer, decompile or disassemble the Software; (e) use the Software for the purpose of building a competitive product or service or copying its features, technology or user interface; (f) use the Software, or permit the foregoing to be used, for purposes of product evaluation, benchmarking or other comparative analysis intended for publication without the Provider's prior written consent; (g) act or omit to act in any way that results in damage to the Provider's business or reputation; and (h) use or otherwise deal with the Provider’s logos, as notified to the Developer from time to time, other than in accordance with these Terms.
|
72
|
-
2. Any breach by the Developer of any of the provisions in clause 5.1 shall be a material breach of these Terms and, without prejudice to its other rights and remedies, shall entitle the Provider to terminate these Terms immediately on written notice to the Developer.
|
73
|
-
1. dashboard
|
74
|
-
|
75
|
-
|
76
|
-
1. The Developer may only invite, and grant access to, authorised Developer Personnel to use the Dashboard and shall procure that any such Developer Personnel only uses the Dashboard (and any information contained therein) for the purposes as specified in clause 3.1 and 3.2(a), and not for any other purpose whatsoever.
|
77
|
-
|
78
|
-
1. Intellectual property rights
|
79
|
-
1. The Developer acknowledges that all Intellectual Property Rights in or arising out of or in connection with the Software shall be owned by the Provider, and neither the Developer nor any of its Affiliates have any rights other than to use the Software in accordance with these Terms.
|
80
|
-
2. The Developer agrees that it will not, and will procure that its Affiliates will not, do anything which could infringe the Intellectual Property Rights of the Provider including any of the Intellectual Property Rights arising from or in connection with the Software or otherwise pursuant to the terms of these Terms. Any and all rights not expressly granted under these Terms shall be reserved by the Provider.
|
81
|
-
1. Limitation of liability and indemnities: THE DEVELOPER'S ATTENTION IS PARTICULARLY DRAWN TO THIS CLAUSE
|
82
|
-
1. Nothing in these Terms shall limit or exclude either party’s liability for:
|
83
|
-
(a) death or personal injury caused by its negligence, or the negligence of its employees, agents or subcontractors; or
|
84
|
-
1. fraud or fraudulent misrepresentation; or
|
85
|
-
2. any liability which cannot be limited or excluded by applicable law.
|
86
|
-
|
87
|
-
|
88
|
-
1. Subject to clause 9.1, the Provider shall not be liable to the Developer, whether in contract, tort (including negligence), for breach of statutory duty, or otherwise, arising under or in connection with these Terms for:
|
89
|
-
(a) loss of profits;
|
90
|
-
1. loss of sales or business;
|
91
|
-
2. loss of agreements or contracts;
|
92
|
-
3. loss of anticipated savings;
|
93
|
-
4. loss of use or corruption of software, data or information;
|
94
|
-
5. loss of damage to goodwill; and
|
95
|
-
6. any indirect or consequential loss.
|
96
|
-
|
97
|
-
|
98
|
-
1. Except as expressly provided herein, neither party makes any warranties of any kind, whether implied, statutory or otherwise which are, to the fullest extent permitted by law, excluded from these Terms. The Provider does not warrant that the use of the Software will be uninterrupted or error-free.
|
99
|
-
2. Subject to clauses 8.1, 8.2 and 8.3, the Provider shall indemnify on demand and hold harmless the Developer from and against any and all losses, demands, claims, damages, costs, expenses (including reasonable legal costs and expenses) and liabilities suffered or incurred, directly or indirectly, by the Developer and/or the Developer’s Affiliates as a result of or in connection with: (a) any third party claim brought against the Developer for infringement of a third party's rights (including any Intellectual Property Rights) arising out of, or in connection with, the receipt or use of the Software by the Developer strictly in accordance with the terms of these Terms; and (b) breach of clause 11.11 and 11.12.
|
100
|
-
3. Subject to clauses 9.1 and 9.2, the Developer shall indemnify on demand and hold harmless the Provider, directors, officers, employees, agents and shareholders from and against any and all losses, demands, claims, damages, costs, expenses (including reasonable legal costs and expenses) and liabilities suffered or incurred, directly or indirectly, by the Provider and/or the Provider’s Affiliates as a result of or in connection with breach of clauses 5.1, 10.11 and 10.12.
|
101
|
-
4. In the event of any claim under either of the indemnities in clauses 9.5 or 9.6, the indemnified party shall:
|
102
|
-
(a) notify the indemnifying party in writing of any such claim (stating in reasonable detail the nature of the matter and if practicable the amount claimed); and
|
103
|
-
1. give the indemnifying party (at the indemnifying party’s own cost) conduct of the defence of such claim and all related settlement negotiations; and
|
104
|
-
2. provide the indemnifying party with reasonable assistance, information, and authority necessary to act in accordance with clause 9.7(b), all out-of-pocket expenses incurred by the indemnified party in providing such assistance, information and authority to be reimbursed by the indemnifying party.
|
105
|
-
|
106
|
-
|
107
|
-
1. The indemnified party shall have a duty to mitigate any loss which it may incur as a result of a matter giving rise to a right of indemnification under this clause 9.
|
108
|
-
2. This clause 8 shall survive termination of these Terms.
|
109
|
-
1. TERM AND Termination
|
110
|
-
1. These Terms will continue in force from the date on which the Developer accepts these Terms until terminated in accordance with this clause.
|
111
|
-
2. Either party may terminate these Terms at any time without cause by giving the other party no less than 5 Business Days’ written notice.
|
112
|
-
3. Without limiting any other rights or remedy available to it, either party may terminate these Terms with immediate effect by giving written notice to the other party if:
|
113
|
-
(a) the other party commits a material breach of any term of these Terms which breach is irremediable or (if such a breach is remediable) fails to remedy that breach within 30 days after being notified to do so; or
|
114
|
-
(b) in the case of the Provider only: (i) if there is a change of Control of the Developer; or (ii) if the Developer suffers or incurs any form of insolvency or arrangement with its creditors.
|
115
|
-
1. Any provision of these Terms that expressly or by implication is intended to come into or continue in force on or after termination of these Terms shall remain in full force and effect.
|
116
|
-
|
117
|
-
|
118
|
-
1. Termination of these Terms shall not affect any rights, remedies, obligations or liabilities of the parties that have accrued up to the date of termination, including the right to claim damages in respect of any breach of these Terms which existed at or before the date of termination.
|
119
|
-
|
120
|
-
|
121
|
-
1. On termination of these Terms for any reason, the Developer shall immediately cease to use the Software, and shall procure that any of its Affiliates and the Developer Personnel shall cease to use the Software, and shall permanently delete, destroy or return to the Provider (at the Provider’s option) all copies of the Software then in its possession, custody or control.
|
122
|
-
|
123
|
-
|
124
|
-
1. General
|
125
|
-
|
126
|
-
|
127
|
-
1. Waiver
|
128
|
-
|
129
|
-
|
130
|
-
No failure or delay by a party to exercise any right or remedy provided under this agreement or by law shall constitute a waiver of that or any other right or remedy, nor shall it prevent or restrict the further exercise of that or any other right or remedy. No single or partial exercise of such right or remedy shall prevent or restrict the further exercise of that or any other right or remedy.
|
131
|
-
|
132
|
-
|
133
|
-
1. Rights and remedies
|
134
|
-
|
135
|
-
|
136
|
-
Except as expressly provided in this agreement, the rights and remedies provided under this agreement are in addition to, and not exclusive of, any rights or remedies provided by law.
|
137
|
-
|
138
|
-
|
139
|
-
1. Entire agreement
|
140
|
-
(a) The Agreement and the documents otherwise referred to therein contain the whole agreement between the parties relating to the subject matter hereof and supersede all prior agreements, arrangements and understandings between the parties relating to that subject matter.
|
141
|
-
|
142
|
-
1. Each party acknowledges that, in entering into these Terms, it does not rely on any statement, representation, assurance or warranty (whether it was made negligently or innocently) of any person (whether a party to these Terms or not) (Representation) other than as expressly set out in these Terms or those documents. Each party agrees that the only rights and remedies available to it arising out of or in connection with a Representation shall be for breach of contract as expressly provided in these Terms. Nothing in this clause shall limit or exclude any liability for fraud.
|
143
|
-
|
144
|
-
|
145
|
-
1. Variation
|
146
|
-
|
147
|
-
|
148
|
-
No variation of these Terms shall be effective unless it is in writing and signed by the parties (or their authorised representatives).
|
149
|
-
|
150
|
-
|
151
|
-
1. Severance
|
152
|
-
|
153
|
-
|
154
|
-
If any provision or part-provision of these Terms is or becomes invalid, illegal or unenforceable, it shall be deemed modified to the minimum extent necessary to make it valid, legal and enforceable. If such modification is not possible, the relevant provision or part-provision shall be deemed deleted. Any modification to or deletion of a provision or part-provision under this clause shall not affect the validity and enforceability of the rest of these Terms.
|
155
|
-
|
156
|
-
|
157
|
-
1. Third parties
|
158
|
-
|
159
|
-
|
160
|
-
A person who is not a party to these Terms shall not have any rights under the Contracts (Rights of Third Parties) Act 1999 to enforce any term of these Terms, but this does affect any right or remedy of a third party which exists, or is available, apart from that Act. Notwithstanding the foregoing, any of the Provider’s Affiliates may enforce the terms of these Terms subject to and in accordance with this clause 11.6, these Terms and the Contracts (Rights of Third Parties) Act 1999.
|
161
|
-
|
162
|
-
|
163
|
-
1. No partnership
|
164
|
-
|
165
|
-
|
166
|
-
Nothing in this agreement is intended to, or shall be deemed to, establish any partnership or joint venture between any of the parties, constitute any party the agent of another party, or authorise any party to make or enter into any commitments for or on behalf of any other party. Each party confirms it is acting on its own behalf and not for the benefit of any other person.
|
167
|
-
|
168
|
-
|
169
|
-
1. Force majeure
|
170
|
-
|
171
|
-
|
172
|
-
Neither party shall be in breach of these Terms nor liable for delay in performing, or failure to perform, any of its obligations under these Terms if such delay or failure result from events, circumstances or causes beyond its reasonable control, and the affected party shall be entitled to a reasonable extension of the time for performing such obligations. If the period of delay or non-performance continues for twelve weeks, the party not affected may terminate these Terms by giving 7 days’ written notice to the affected party.
|
173
|
-
|
174
|
-
|
175
|
-
1. Notices
|
176
|
-
|
177
|
-
|
178
|
-
(a) Any notice or other communication given to a party under or in connection with these Terms shall be in writing, addressed to that party at its registered office or such other address as that party may have specified to the other party in writing in accordance with this clause, and shall be delivered personally, or sent by pre-paid first class post or other next working day delivery service, commercial courier, or email.
|
179
|
-
1. A notice or other communication shall be deemed to have been received: if delivered personally, when left at the address referred to in clause 11.9(a); if sent by pre-paid first class post or other next working day delivery service, at 9.00 am on the second Business Day after posting; if delivered by commercial courier, on the date and at the time that the courier's delivery receipt is signed; or, if sent by or email, one Business Day after transmission.
|
180
|
-
(c)The provisions of this clause shall not apply to the service of any proceedings or other documents in any legal action.
|
181
|
-
|
182
|
-
11.10 Assignment and other dealings
|
183
|
-
(a) The Provider may at any time assign, transfer, mortgage, charge, subcontract or deal in any other manner with all or any of its rights under these Terms and may subcontract or delegate in any manner any or all of its obligations under these Terms to any third party or agent.
|
184
|
-
1. The Developer shall not, without the prior written consent of the Provider, assign, transfer, mortgage, charge, subcontract, declare a trust over or deal in any other manner with any or all of its rights or obligations under these Terms, other than as set out herein.
|
185
|
-
|
186
|
-
|
187
|
-
1. Data Protection
|
188
|
-
(a) Each party shall comply with all applicable data protection and data privacy laws and regulations applying to any Personal Data (as defined in the UK Data Protection Act 1998) exchanged in connection with these Terms, and each party shall have established privacy policies and processes or principles to ensure that it remains at all times in compliance with such laws and regulations.
|
189
|
-
(b) The Developer shall ensure data minimisation and follow the ICO guidance for app developers ‘Privacy in mobile apps’ as may be updated and replaced from time to time.
|
190
|
-
11.12 Confidentiality
|
191
|
-
1. Each party shall, during the term of these Terms and thereafter, keep confidential all information of a confidential nature (including trade secrets and information of commercial value) which may become known to such party from the other party and which relates to the other party or any of its Affiliates. Neither party shall use the other party’s confidential information for its own purposes (other than implementation of these Terms) nor, without the prior written consent of the other, disclose it to any third party (except its professional advisors or as may be required by any law or any legal or regulatory authority). The foregoing obligations shall not apply (or shall cease to apply) if that information: (a) is public knowledge or already known to such party at the time of disclosure; or (b) subsequently becomes public knowledge other than by breach of this licence; or (c) subsequently comes lawfully into the possession of such party from a third party. Each party shall use its reasonable endeavours to prevent the unauthorised disclosure of any such information.
|
192
|
-
|
193
|
-
|
194
|
-
1. No party shall make, or permit any person to make, any public announcement concerning this agreement without the prior written consent of the other parties (such consent not to be unreasonably withheld or delayed), except as required by law, any governmental or regulatory authority (including, without limitation, any relevant securities exchange), any court or other authority of competent jurisdiction.
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
1. Audit
|
200
|
-
The Developer acknowledges and agrees that the Provider may, at the reasonable request of the Provider, inspect and have access to such of the Developer’s personnel, facilities and books and records, relevant to the use of the Software, for the purposes of ensuring that the Developer is complying with the terms of these Terms, provided that the Provider provides reasonable advance notice to the Developer of such inspections, which shall take place at reasonable times, unless otherwise requested by any governmental or regulatory body having jurisdiction over the Provider.
|
201
|
-
1. Governing law and jurisdiction
|
202
|
-
The Agreement, and any dispute or claim arising out of or in connection with it or its subject matter or formation (including non-contractual disputes or claims) shall be governed by, and construed in accordance with the law of England and Wales. The parties irrevocably agree that the courts of England and Wales shall have exclusive jurisdiction to settle any dispute or claim that arises out of or in connection with these Terms or its subject matter or formation (including non-contractual disputes or claims).
|