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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d6ee915ecf74fb4729d9b139b48273c9b41afe41
4
- data.tar.gz: 0e9719ea688f33a2fa78d16dc249d161e69af0fc
3
+ metadata.gz: f94e5f9c2f83cc70f4bf1a18188e27acb47f61cb
4
+ data.tar.gz: d4f76df114cd63accfe3d28da9f3895b498ba709
5
5
  SHA512:
6
- metadata.gz: 6ef84e4667576bb61cbe84f116ca49d528dd3b3df51bde40d8a2240f05e8753237d507288a89629a3191e7edf0ba42f9ca6c77e8ed17f0eb1e7563d241078deb
7
- data.tar.gz: 0a3a2c492f0ed1f22db4949a95936802197647640072af6f35432c0660b885bc51936af304ba072594cfbcbf965520c107a56b21468bf945f16f44271f5a0bf6
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
- 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.
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 in the context of a Login flow.
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 web and mobile clients.
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
- The 1.13 version of [Bundler][] (currently in release candidate stage) will sort this dependency issue automatically. More info in this [comment][] by André Arko.
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
- ## Installation
84
+ ## Installing the SDK
46
85
 
47
- Add this line to your application's Gemfile:
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 install it yourself as:
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
- ### Ruby on Rails
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
- ### Profile retrieval
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 *Integrations* page, under the *Login button* section.
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 = 88.9
39
+ verify.threshold = 89.0
40
40
  end
41
41
 
42
42
  ################################
43
43
  # Defaults #
44
44
  ################################
45
45
 
46
- task default: [:spec, :rubocop]
46
+ task default: %i[spec rubocop]
@@ -1,13 +1,14 @@
1
1
  module Yoti
2
2
  class Configuration
3
- attr_accessor :client_sdk_id, :key_file_path, :key, :api_url,
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(client_sdk_id))
25
- validate_required_any(%w(key_file_path key))
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
@@ -1,4 +1,4 @@
1
1
  module Yoti
2
2
  # @return [String] the gem's current version
3
- VERSION = '1.0.2'.freeze
3
+ VERSION = '1.0.3'.freeze
4
4
  end
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 = ['Vasile Zaremba']
10
- spec.email = ['vasile.zaremba@yoti.com']
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 = 'Proprietary'
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.2
4
+ version: 1.0.3
5
5
  platform: ruby
6
6
  authors:
7
- - Vasile Zaremba
7
+ - Sebastian Zaremba
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-03-15 00:00:00.000000000 Z
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
- - vasile.zaremba@yoti.com
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.txt
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
- - Proprietary
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.8
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).