turbot-runner 0.1.23 → 0.1.24
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/lib/turbot_runner.rb +0 -2
- data/lib/turbot_runner/processor.rb +7 -70
- data/lib/turbot_runner/version.rb +1 -1
- data/schema/schemas/company-schema.json +69 -22
- data/schema/schemas/financial-payment-schema.json +12 -5
- data/schema/schemas/includes/address.json +36 -13
- data/schema/schemas/includes/alternative_name.json +32 -9
- data/schema/schemas/includes/company-for-nesting.json +70 -23
- data/schema/schemas/includes/company.json +15 -6
- data/schema/schemas/includes/filing.json +48 -16
- data/schema/schemas/includes/financial-payment-data-object.json +73 -21
- data/schema/schemas/includes/identifier.json +14 -8
- data/schema/schemas/includes/industry_code.json +25 -12
- data/schema/schemas/includes/licence-data-object.json +40 -13
- data/schema/schemas/includes/officer.json +66 -46
- data/schema/schemas/includes/organisation.json +6 -5
- data/schema/schemas/includes/permission.json +36 -17
- data/schema/schemas/includes/person.json +14 -13
- data/schema/schemas/includes/person_name.json +36 -12
- data/schema/schemas/includes/previous_name.json +19 -9
- data/schema/schemas/includes/share-parcel-data.json +55 -40
- data/schema/schemas/includes/share-parcel.json +71 -56
- data/schema/schemas/includes/subsidiary-relationship-data.json +19 -8
- data/schema/schemas/includes/total-shares.json +13 -6
- data/schema/schemas/includes/unknown_entity_type.json +6 -5
- data/schema/schemas/licence-schema.json +157 -17
- data/schema/schemas/primary-data-schema.json +18 -16
- data/schema/schemas/share-parcel-schema.json +8 -7
- data/schema/schemas/simple-financial-payment-schema.json +47 -11
- data/schema/schemas/simple-licence-schema.json +21 -6
- data/schema/schemas/simple-subsidiary-schema.json +15 -4
- data/schema/schemas/subsidiary-relationship-schema.json +26 -7
- data/spec/lib/processor_spec.rb +3 -75
- metadata +5 -10
- data/lib/turbot_runner/validator.rb +0 -77
- data/lib/turbot_runner/validators.rb +0 -12
- data/schema/schemas/rich-licence-schema.json +0 -103
- data/spec/lib/validator_spec.rb +0 -235
- data/spec/lib/validators_spec.rb +0 -48
@@ -1,36 +1,63 @@
|
|
1
1
|
{
|
2
|
-
"
|
2
|
+
"$schema": "http://json-schema.org/draft-04/schema#",
|
3
3
|
"type": "object",
|
4
4
|
"properties": {
|
5
|
-
"data_type": {
|
5
|
+
"data_type": {
|
6
|
+
"enum": [
|
7
|
+
"licence"
|
8
|
+
]
|
9
|
+
},
|
6
10
|
"source_url": {
|
7
|
-
"type": "string"
|
11
|
+
"type": "string"
|
12
|
+
},
|
8
13
|
"confidence": {
|
9
|
-
"type": "string"
|
14
|
+
"type": "string"
|
15
|
+
},
|
10
16
|
"properties": {
|
11
17
|
"type": "object",
|
12
18
|
"properties": {
|
13
19
|
"regulator": {
|
14
20
|
"description": "The regulating body that issued the licence",
|
15
|
-
"type": "string"
|
21
|
+
"type": "string"
|
22
|
+
},
|
16
23
|
"category": {
|
17
24
|
"description": "The category of licence. Current possible values are: 'Financial','Business'",
|
18
|
-
"enum": [
|
25
|
+
"enum": [
|
26
|
+
"Financial",
|
27
|
+
"Business"
|
28
|
+
]
|
29
|
+
},
|
19
30
|
"jurisdiction_code": {
|
20
31
|
"description": "The jurisdiction for which licence was issued",
|
21
|
-
"type": "string"
|
32
|
+
"type": "string"
|
33
|
+
},
|
22
34
|
"licence_number": {
|
23
35
|
"description": "Licence number or code (can be null)",
|
24
|
-
"type": [
|
36
|
+
"type": [
|
37
|
+
"string",
|
38
|
+
null
|
39
|
+
]
|
40
|
+
},
|
25
41
|
"jurisdiction_classification": {
|
26
42
|
"type": "array",
|
27
43
|
"description": "The local classification given by the regulator",
|
28
|
-
"minItems": 1
|
44
|
+
"minItems": 1
|
45
|
+
},
|
29
46
|
"oc_classification": {
|
30
|
-
"type": "array"
|
47
|
+
"type": "array"
|
48
|
+
}
|
31
49
|
},
|
32
|
-
"required": [
|
50
|
+
"required": [
|
51
|
+
"jurisdiction_code",
|
52
|
+
"jurisdiction_classification",
|
53
|
+
"category"
|
54
|
+
]
|
33
55
|
}
|
34
56
|
},
|
35
|
-
"required": [
|
36
|
-
|
57
|
+
"required": [
|
58
|
+
"data_type",
|
59
|
+
"properties",
|
60
|
+
"source_url",
|
61
|
+
"confidence"
|
62
|
+
]
|
63
|
+
}
|
@@ -1,50 +1,70 @@
|
|
1
1
|
{
|
2
|
-
"
|
2
|
+
"$schema": "http://json-schema.org/draft-04/schema#",
|
3
3
|
"description": "An officer (director, senior executive) of a company",
|
4
4
|
"type": "object",
|
5
|
-
"properties": {
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
5
|
+
"properties": {
|
6
|
+
"name": {
|
7
|
+
"type": "string",
|
8
|
+
"minLength": 1
|
9
|
+
},
|
10
|
+
"start_date": {
|
11
|
+
"anyOf": [
|
12
|
+
{
|
13
|
+
"type": "string",
|
14
|
+
"format": "date"
|
15
|
+
},
|
16
|
+
{
|
17
|
+
"type": "null"
|
18
|
+
}
|
19
|
+
]
|
20
|
+
},
|
21
|
+
"end_date": {
|
22
|
+
"anyOf": [
|
23
|
+
{
|
24
|
+
"type": "string",
|
25
|
+
"format": "date"
|
26
|
+
},
|
27
|
+
{
|
28
|
+
"type": "null"
|
29
|
+
}
|
30
|
+
]
|
31
|
+
},
|
32
|
+
"position": {
|
33
|
+
"type": "string"
|
34
|
+
},
|
35
|
+
"uid": {
|
36
|
+
"type": "string",
|
37
|
+
"description": "a unique identifier given to the officership"
|
38
|
+
},
|
39
|
+
"other_attributes": {
|
40
|
+
"type": "object",
|
41
|
+
"properties": {
|
42
|
+
"date_of_birth": {
|
43
|
+
"type": "string",
|
44
|
+
"format": "date"
|
45
|
+
},
|
46
|
+
"nationality": {
|
47
|
+
"type": "string"
|
48
|
+
},
|
49
|
+
"person_uid": {
|
50
|
+
"type": "string",
|
51
|
+
"description": "a unique identifier given to the individual (as opposed to the officership)"
|
52
|
+
},
|
53
|
+
"address": {
|
54
|
+
"type": "string"
|
55
|
+
},
|
56
|
+
"type": {
|
57
|
+
"type": "string",
|
58
|
+
"enum": [
|
59
|
+
"Person",
|
60
|
+
"Company"
|
61
|
+
],
|
62
|
+
"description": "The type of entity that is the officer (either 'Person' or 'Company')"
|
63
|
+
}
|
64
|
+
}
|
65
|
+
}
|
47
66
|
},
|
48
|
-
"required": [
|
49
|
-
|
50
|
-
|
67
|
+
"required": [
|
68
|
+
"name"
|
69
|
+
]
|
70
|
+
}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
|
-
"
|
3
|
-
"type": "object",
|
2
|
+
"$schema": "http://json-schema.org/draft-04/schema#",
|
4
3
|
"description": "An entity which is a distinct organisation, but is not a company nor an individual. Examples include governments and governmental entities (e.g. Multilateral Devoelpment Banks, Government Departments, municipalities, etc), and also membership organisations",
|
4
|
+
"type": "object",
|
5
5
|
"properties": {
|
6
6
|
"name": {
|
7
7
|
"type": "string",
|
@@ -52,6 +52,7 @@
|
|
52
52
|
}
|
53
53
|
}
|
54
54
|
},
|
55
|
-
"required": [
|
56
|
-
|
57
|
-
|
55
|
+
"required": [
|
56
|
+
"name"
|
57
|
+
]
|
58
|
+
}
|
@@ -1,27 +1,46 @@
|
|
1
|
-
{
|
2
|
-
|
1
|
+
{
|
2
|
+
"$schema": "http://json-schema.org/draft-04/schema#",
|
3
|
+
"oneOf": [
|
3
4
|
{
|
4
|
-
"type": [
|
5
|
+
"type": [
|
6
|
+
"string",
|
7
|
+
"null"
|
8
|
+
],
|
5
9
|
"minLength": 2
|
6
10
|
},
|
7
11
|
{
|
8
12
|
"name": "Permission",
|
9
13
|
"description": "A permission issued by a government or regulatory body to an entity to do something. This may be fine grained,e.g. to sell liquor, to accept customer deposits, or broader, e.g to operate as a bank, a restaurant. It may also be permission to do something physical, such as explore for oil in a given area, or mine for iron ore",
|
10
14
|
"type": "object",
|
11
|
-
"properties": {
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
15
|
+
"properties": {
|
16
|
+
"activity_name": {
|
17
|
+
"type": "string"
|
18
|
+
},
|
19
|
+
"activity_id": {
|
20
|
+
"type": "string"
|
21
|
+
},
|
22
|
+
"permission_type": {
|
23
|
+
"enum": [
|
24
|
+
"operating",
|
25
|
+
"exploration",
|
26
|
+
"exploitation"
|
27
|
+
],
|
28
|
+
"description": "types of permission, such as 'operating', 'exploration', 'exploitation'"
|
29
|
+
},
|
30
|
+
"restrictions": {
|
31
|
+
"type": "array",
|
32
|
+
"description": "conditions or restrictions on the permissions",
|
33
|
+
"items": {
|
34
|
+
"type": "string"
|
35
|
+
}
|
36
|
+
},
|
37
|
+
"other_attributes": {
|
38
|
+
"type": "object"
|
39
|
+
}
|
22
40
|
},
|
23
|
-
"required": [
|
41
|
+
"required": [
|
42
|
+
"activity_name"
|
43
|
+
]
|
24
44
|
}
|
25
45
|
]
|
26
|
-
}
|
27
|
-
|
46
|
+
}
|
@@ -1,15 +1,10 @@
|
|
1
1
|
{
|
2
|
-
"
|
3
|
-
"type": "object",
|
2
|
+
"$schema": "http://json-schema.org/draft-04/schema#",
|
4
3
|
"description": "A person, for example, referenced in some other context, e.g. director of a company, shareholder, licence-holder, lobbyist. This should be used only if the person is the subject of the datum",
|
4
|
+
"type": "object",
|
5
5
|
"properties": {
|
6
6
|
"name": {
|
7
|
-
"
|
8
|
-
{ "type": "string",
|
9
|
-
"minLength": 1
|
10
|
-
},
|
11
|
-
{ "$ref": "person_name.json" }
|
12
|
-
]
|
7
|
+
"$ref": "person_name.json"
|
13
8
|
},
|
14
9
|
"jurisdiction": {
|
15
10
|
"type": "string",
|
@@ -17,10 +12,15 @@
|
|
17
12
|
},
|
18
13
|
"company": {
|
19
14
|
"description": "Company the person is representing. NB If the licence holder is a company, and the individual is a just a contact, then use the company-schema for the entity. This is where the individual themselves are the licence holder",
|
20
|
-
"$ref": "
|
15
|
+
"$ref": "company-for-nesting.json"
|
21
16
|
},
|
22
17
|
"relationship_with_company": {
|
23
|
-
|
18
|
+
"enum": [
|
19
|
+
"employee",
|
20
|
+
"director",
|
21
|
+
"shareholder",
|
22
|
+
null
|
23
|
+
]
|
24
24
|
},
|
25
25
|
"website": {
|
26
26
|
"type": "string",
|
@@ -56,6 +56,7 @@
|
|
56
56
|
}
|
57
57
|
}
|
58
58
|
},
|
59
|
-
"required": [
|
60
|
-
|
61
|
-
|
59
|
+
"required": [
|
60
|
+
"name"
|
61
|
+
]
|
62
|
+
}
|
@@ -1,7 +1,11 @@
|
|
1
|
-
{
|
2
|
-
|
1
|
+
{
|
2
|
+
"$schema": "http://json-schema.org/draft-04/schema#",
|
3
|
+
"oneOf": [
|
3
4
|
{
|
4
|
-
"type": [
|
5
|
+
"type": [
|
6
|
+
"string",
|
7
|
+
"null"
|
8
|
+
],
|
5
9
|
"minLength": 2
|
6
10
|
},
|
7
11
|
{
|
@@ -9,39 +13,59 @@
|
|
9
13
|
"type": "object",
|
10
14
|
"properties": {
|
11
15
|
"given_name": {
|
12
|
-
"type": [
|
16
|
+
"type": [
|
17
|
+
"string",
|
18
|
+
"null"
|
19
|
+
],
|
13
20
|
"description": "The given name (often first name) of a person, as opposed to their family name. Following FOAF practice, this is preferred to first_name",
|
14
21
|
"minLength": 1
|
15
22
|
},
|
16
23
|
"family_name": {
|
17
|
-
"type": [
|
24
|
+
"type": [
|
25
|
+
"string",
|
26
|
+
"null"
|
27
|
+
],
|
18
28
|
"description": "The family name (often last name) of a person, as opposed to their family name. Following FOAF practice, this is preferred to last_name",
|
19
29
|
"minLength": 1
|
20
30
|
},
|
21
31
|
"first_name": {
|
22
|
-
"type": [
|
32
|
+
"type": [
|
33
|
+
"string",
|
34
|
+
"null"
|
35
|
+
],
|
23
36
|
"minLength": 1
|
24
37
|
},
|
25
38
|
"middle_name": {
|
26
|
-
"type": [
|
39
|
+
"type": [
|
40
|
+
"string",
|
41
|
+
"null"
|
42
|
+
],
|
27
43
|
"minLength": 1
|
28
44
|
},
|
29
45
|
"last_name": {
|
30
|
-
"type": [
|
46
|
+
"type": [
|
47
|
+
"string",
|
48
|
+
"null"
|
49
|
+
],
|
31
50
|
"minLength": 1
|
32
51
|
},
|
33
52
|
"title": {
|
34
|
-
"type": [
|
53
|
+
"type": [
|
54
|
+
"string",
|
55
|
+
"null"
|
56
|
+
],
|
35
57
|
"description": "Title such as Mr, Ms, Dr etc",
|
36
58
|
"minLength": 1
|
37
59
|
},
|
38
60
|
"suffixes": {
|
39
|
-
"type": [
|
61
|
+
"type": [
|
62
|
+
"string",
|
63
|
+
"null"
|
64
|
+
],
|
40
65
|
"description": "Any suffixes, including degrees, honours (OBE), ordinals (John Smith Jr, Bill Jones II) etc",
|
41
66
|
"minLength": 1
|
42
67
|
}
|
43
68
|
}
|
44
69
|
}
|
45
70
|
]
|
46
|
-
}
|
47
|
-
|
71
|
+
}
|
@@ -1,14 +1,24 @@
|
|
1
1
|
{
|
2
|
+
"$schema": "http://json-schema.org/draft-04/schema#",
|
2
3
|
"name": "PreviousName",
|
3
4
|
"description": "A previous name of a company",
|
4
5
|
"type": "object",
|
5
|
-
"properties": {
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
6
|
+
"properties": {
|
7
|
+
"company_name": {
|
8
|
+
"type": "string",
|
9
|
+
"minLength": 1
|
10
|
+
},
|
11
|
+
"con_date": {
|
12
|
+
"type": "string",
|
13
|
+
"format": "date",
|
14
|
+
"description": "The end (conversion) date of the name"
|
15
|
+
},
|
16
|
+
"start_date": {
|
17
|
+
"type": "string",
|
18
|
+
"format": "date"
|
19
|
+
}
|
11
20
|
},
|
12
|
-
"required": [
|
13
|
-
|
14
|
-
|
21
|
+
"required": [
|
22
|
+
"company_name"
|
23
|
+
]
|
24
|
+
}
|
@@ -1,15 +1,22 @@
|
|
1
1
|
{
|
2
|
-
"
|
2
|
+
"$schema": "http://json-schema.org/draft-04/schema#",
|
3
3
|
"type": "object",
|
4
4
|
"properties": {
|
5
|
-
"data_type": {
|
5
|
+
"data_type": {
|
6
|
+
"enum": [
|
7
|
+
"share_parcel"
|
8
|
+
]
|
9
|
+
},
|
6
10
|
"properties": {
|
7
11
|
"type": "object",
|
8
|
-
"required": [
|
12
|
+
"required": [
|
13
|
+
"shareholders"
|
14
|
+
],
|
9
15
|
"properties": {
|
10
16
|
"number_of_shares": {
|
11
17
|
"description": "Number of shares, if known",
|
12
|
-
"type": "integer"
|
18
|
+
"type": "integer"
|
19
|
+
},
|
13
20
|
"percentage_of_shares": {
|
14
21
|
"description": "Percentage of shares, if known",
|
15
22
|
"type": "number",
|
@@ -22,40 +29,45 @@
|
|
22
29
|
"minItems": 1,
|
23
30
|
"items": {
|
24
31
|
"anyOf": [
|
25
|
-
{
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
32
|
+
{
|
33
|
+
"type": "object",
|
34
|
+
"name": "person",
|
35
|
+
"required": [
|
36
|
+
"name"
|
37
|
+
],
|
38
|
+
"properties": {
|
39
|
+
"name": {
|
40
|
+
"description": "Name of natural person or company",
|
41
|
+
"type": "string"
|
42
|
+
},
|
43
|
+
"jurisdiction": {
|
44
|
+
"description": "Jurisdiction of registration, if company",
|
45
|
+
"type": "string"
|
46
|
+
},
|
47
|
+
"company_number": {
|
48
|
+
"description": "Company number, if company and known",
|
49
|
+
"type": "string"
|
50
|
+
},
|
51
|
+
"identifier": {
|
52
|
+
"description": "Unique identifier of person",
|
53
|
+
"type": "string"
|
54
|
+
},
|
55
|
+
"type": {
|
56
|
+
"description": "Type of person if known (company or natural person)",
|
57
|
+
"enum": [
|
58
|
+
"Company",
|
59
|
+
"Person"
|
60
|
+
]
|
61
|
+
},
|
62
|
+
"address": {
|
63
|
+
"description": "Address given for owner of parcel",
|
64
|
+
"type": "string"
|
65
|
+
},
|
66
|
+
"address_country": {
|
67
|
+
"description": "Country part of owner's address",
|
68
|
+
"type": "string"
|
69
|
+
}
|
70
|
+
}
|
59
71
|
}
|
60
72
|
]
|
61
73
|
}
|
@@ -63,5 +75,8 @@
|
|
63
75
|
}
|
64
76
|
}
|
65
77
|
},
|
66
|
-
"required": [
|
67
|
-
|
78
|
+
"required": [
|
79
|
+
"data_type",
|
80
|
+
"properties"
|
81
|
+
]
|
82
|
+
}
|