forked from datenanfragen/data
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathschema.json
More file actions
161 lines (161 loc) · 7.67 KB
/
schema.json
File metadata and controls
161 lines (161 loc) · 7.67 KB
1
2
3
4
5
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Datenanfragen.de company database record",
"description": "A single record of the Datenanfragen.de company database. It represents the contact information of a company (or other organization) specifically for privacy-related inquires and requests.\nMore information and access to the whole database at: https://github.com/datenanfragen/companies",
"type": "object",
"properties": {
"slug": {
"type": "string",
"title": "Slug",
"pattern": "^[a-z0-9-]+$",
"description": "A unique identifier for the company record. Also defines the filename."
},
"relevant-countries": {
"type": "array",
"title": "Relevant countries",
"description": "A list of countries the record is relevant for. The countries can either be an ISO 3166-1 alpha-2 country code or 'all'. If a company has branches in different countries with unique contact data, separate records should be created for those. If a company branch offers its services in English and isn't explicitly restricted to certain countries, 'all' should be specified.",
"uniqueItems": true,
"items": {
"type": "string",
"enum": [ "all", "de", "gb", "at", "ch", "fr", "it", "nl", "af", "eg", "al", "dz", "ad", "ao", "ag", "gq", "ar", "am", "az", "et", "au", "bs", "bh", "bd", "bb", "by", "be", "bz", "bj", "bt", "bo", "ba", "bw", "br", "bn", "bg", "bf", "bi", "cl", "cn", "cr", "ci", "dk", "dm", "do", "dj", "ec", "sv", "er", "ee", "fj", "fi", "ga", "gm", "ge", "gh", "gd", "gr", "gt", "gn", "gw", "gy", "ht", "hn", "in", "id", "iq", "ir", "ie", "is", "il", "jm", "jp", "ye", "jo", "kh", "cm", "ca", "cv", "kz", "qa", "ke", "kg", "ki", "co", "km", "cd", "cg", "kp", "kr", "hr", "cu", "kw", "la", "ls", "lv", "lb", "lr", "ly", "li", "lt", "lu", "mg", "mw", "my", "mv", "ml", "mt", "ma", "mh", "mr", "mu", "mx", "fm", "md", "mc", "mn", "me", "mz", "mm", "na", "nr", "np", "nz", "ni", "ne", "ng", "mk", "no", "om", "tl", "pk", "pw", "pa", "pg", "py", "pe", "ph", "pl", "pt", "rw", "ro", "ru", "sb", "zm", "ws", "sm", "st", "sa", "se", "sn", "rs", "sc", "sl", "zw", "sg", "sk", "si", "so", "es", "lk", "kn", "lc", "vc", "za", "sd", "ss", "sr", "sz", "sy", "tj", "tz", "th", "tg", "to", "tt", "td", "cz", "tn", "tr", "tm", "tv", "ug", "ua", "hu", "uy", "uz", "vu", "ve", "ae", "us", "vn", "cf", "cy" ]
}
},
"categories": {
"type": "array",
"title": "Categories",
"description": "A list of categories that the company fits into. These are purposefully fairly vague and may be applied generously.",
"uniqueItems": true,
"items": {
"type": "string",
"enum": [ "addresses", "ads", "collection agency", "commerce", "credit agency", "entertainment", "finance", "health", "insurance", "nonprofit", "political party", "public body", "school", "social media", "telecommunication", "travel", "utility" ]
}
},
"name": {
"type": "string",
"description": "The company's official name, including suffixes like 'Ltd.', 'LLC', 'GmbH' etc.",
"title": "Name"
},
"runs": {
"type": "array",
"title": "Runs",
"description": "A list of other services and companies the parent company is responsible (as defined in Article 4(7) GDPR) for.",
"uniqueItems": true,
"items": {
"type": "string"
}
},
"address": {
"type": "string",
"title": "Address",
"description": "The address where the company can be reached for privacy-related inquires and requests. Has to include the country (either in the country's native language or in English) in the last line and should be formatted according to the standards of the respective country.",
"format": "text"
},
"phone": {
"type": "string",
"title": "Phone",
"description": "A phone number where the company can be reached for privacy-related inquires and requests. Has to be in the standard international format and include the country code.",
"pattern": "^\\+\\d+ \\d+ [\\d ]+$"
},
"fax": {
"type": "string",
"title": "Fax",
"description": "A fax number where the company can be reached for privacy-related inquires and requests. Has to be in the standard international format and include the country code.",
"pattern": "^\\+\\d+ \\d+ [\\d ]+$"
},
"email": {
"type": "string",
"title": "Email",
"description": "An email address where the company can be reached for privacy-related inquires and requests. Preferably a specific privacy@[domain.tld] address if available.",
"format": "idn-email"
},
"web": {
"type": "string",
"title": "Website",
"description": "The company's main website.",
"format": "uri"
},
"sources": {
"type": "array",
"title": "Sources",
"description": "A list of sources for the record. Preferably from the company's official website.",
"uniqueItems": true,
"items": {
"type": "string",
"format": "uri"
}
},
"required-elements": {
"type": "array",
"title": "Required elements",
"description": "A list of identification elements the user has to provide for requests to the company. Only to be filled in if they have been confirmed. This should be the absolute minimum the user has to specify.",
"uniqueItems": true,
"items": {
"type": "object",
"properties": {
"desc": {
"type": "string",
"title": "Description",
"description": "A clear description of the identification element."
},
"type": {
"type": "string",
"title": "Type",
"description": "The type of identification element.",
"default": "input",
"enum": [ "input", "textarea", "address", "name", "birthdate" ]
},
"optional": {
"type": "boolean",
"title": "Optional?",
"description": "Whether the identification element is optional. Default is `false`."
}
},
"additionalProperties": false,
"required": [ "desc", "type" ]
}
},
"request-language": {
"type": "string",
"title": "Request language",
"description": "The language requests to the company (or specifically its branch as specified in the respective record) should be in. Has to be an ISO 639-1 language code. If not specified, fallback to the interface language.",
"pattern": "^[a-z]{2}$"
},
"custom-access-template": {
"type": "string",
"title": "Custom access template",
"description": "The path to a custom template for data access requests to this company, if necessary."
},
"custom-erasure-template": {
"type": "string",
"title": "Custom erasure template",
"description": "The path to a custom template for data erasure requests to this company, if necessary."
},
"custom-rectification-template": {
"type": "string",
"title": "Custom rectification template",
"description": "The path to a custom template for data rectification requests to this company, if necessary."
},
"needs-id-document": {
"type": "boolean",
"title": "Needs ID document?",
"description": "Whether an ID document is necessary for all requests to this company. Only to be set to `true` if an ID document is confirmed to be required in all circumstances. Default is `false`."
},
"suggested-transport-medium": {
"type": "string",
"title": "Suggested transport medium",
"description": "The transport medium a user should use for their privacy-related inquires and requests. If a specific privacy@[domain.tld] email address is available, 'email' should be specified. The default is a fallback chain as follows: fax -> letter -> email.",
"enum": [ "fax", "letter", "email" ]
},
"comments": {
"type": "array",
"title": "Comments",
"description": "A list of notes relevant to the record.",
"items": {
"type": "string",
"format": "text"
}
}
},
"additionalProperties": false,
"required": [ "slug", "relevant-countries", "name", "address", "sources" ]
}