@data-fair/catalog-data-fair 0.2.2 → 0.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -3
- package/index.ts +1 -1
- package/lib/download.ts +3 -1
- package/lib/imports.ts +4 -4
- package/package.json +3 -3
- package/types/catalogConfig/.type/index.js +1 -1
- package/types/catalogConfig/.type/validate.js +1 -1
- package/types/catalogConfig/schema.json +1 -1
- package/types/datafairSchemas/.type/index.d.ts +23 -14
- package/types/datafairSchemas/schema.ts +431 -0
- package/types/datafairSchemas/schema.json +0 -409
package/README.md
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
# <img alt="Data FAIR logo" src="https://cdn.jsdelivr.net/gh/data-fair/data-fair@master/ui/public/assets/logo.svg" width="40"> @data-fair/catalog-
|
|
1
|
+
# <img alt="Data FAIR logo" src="https://cdn.jsdelivr.net/gh/data-fair/data-fair@master/ui/public/assets/logo.svg" width="40"> @data-fair/catalog-data-fair
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
This plugin can be used as a template for creating new plugins.
|
|
3
|
+
Data Fair plugin for the Data Fair catalogs service.
|
package/index.ts
CHANGED
|
@@ -12,7 +12,7 @@ const plugin: CatalogPlugin<DataFairConfig, DataFairCapabilities> = {
|
|
|
12
12
|
return prepare(context)
|
|
13
13
|
},
|
|
14
14
|
|
|
15
|
-
async
|
|
15
|
+
async list (context) {
|
|
16
16
|
const { listResources } = await import('./lib/imports.ts')
|
|
17
17
|
return listResources(context)
|
|
18
18
|
},
|
package/lib/download.ts
CHANGED
|
@@ -41,7 +41,7 @@ const getMetaData = async ({ catalogConfig, resourceId, log, secrets }: GetResou
|
|
|
41
41
|
log.info('Import des métadonnées de la ressource', { url })
|
|
42
42
|
} catch (e) {
|
|
43
43
|
console.error('Error while fetching metadatas', e)
|
|
44
|
-
throw new Error(`Erreur lors de la
|
|
44
|
+
throw new Error(`Erreur lors de la récupération de la resource DataFair. ${e instanceof Error ? e.message : e}`)
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
dataset.schema = (dataset.schema ?? []).map((field) => {
|
|
@@ -71,6 +71,8 @@ const getMetaData = async ({ catalogConfig, resourceId, log, secrets }: GetResou
|
|
|
71
71
|
frequency: dataset.frequency,
|
|
72
72
|
image: dataset.image,
|
|
73
73
|
keywords: dataset.keywords,
|
|
74
|
+
analysis: dataset.analysis,
|
|
75
|
+
projection: dataset.projection,
|
|
74
76
|
size,
|
|
75
77
|
schema: dataset.schema,
|
|
76
78
|
filePath: '',
|
package/lib/imports.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { DataFairCatalog, DataFairDataset, DataFairConfig } from '#types'
|
|
2
2
|
import axios from '@data-fair/lib-node/axios.js'
|
|
3
|
-
import type { CatalogPlugin,
|
|
3
|
+
import type { CatalogPlugin, ListContext } from '@data-fair/types-catalogs'
|
|
4
4
|
import type { DataFairCapabilities } from './capabilities.ts'
|
|
5
5
|
|
|
6
|
-
type ResourceList = Awaited<ReturnType<CatalogPlugin['
|
|
6
|
+
type ResourceList = Awaited<ReturnType<CatalogPlugin['list']>>['results']
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* @param dataFairDataset the dataset to transform
|
|
@@ -35,7 +35,7 @@ const prepareCatalog = (dataFairDatasets: DataFairDataset[]): ResourceList => {
|
|
|
35
35
|
* @param config the Data Fair configuration
|
|
36
36
|
* @returns the list of Resources available on this catalog
|
|
37
37
|
*/
|
|
38
|
-
export const listResources = async (config:
|
|
38
|
+
export const listResources = async (config: ListContext<DataFairConfig, DataFairCapabilities>): ReturnType<CatalogPlugin<DataFairConfig>['list']> => {
|
|
39
39
|
const dataFairParams: Record<string, any> = { sort: 'title' }
|
|
40
40
|
if (config.params?.q) dataFairParams.q = config.params.q
|
|
41
41
|
if (config.params?.size) dataFairParams.size = config.params.size
|
|
@@ -52,7 +52,7 @@ export const listResources = async (config: ListResourcesContext<DataFairConfig,
|
|
|
52
52
|
data = res.data
|
|
53
53
|
} catch (e) {
|
|
54
54
|
console.error(`Error fetching datasets from ${url} : ${e}`)
|
|
55
|
-
throw new Error(`Erreur lors de la
|
|
55
|
+
throw new Error(`Erreur lors de la récupération de la resource Data Fair (${e instanceof Error ? e.message : ''})`)
|
|
56
56
|
}
|
|
57
57
|
|
|
58
58
|
const catalog = prepareCatalog(data.results)
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@data-fair/catalog-data-fair",
|
|
3
|
-
"description": "
|
|
4
|
-
"version": "0.2.
|
|
3
|
+
"description": "Data Fair plugin for the Data Fair catalogs service.",
|
|
4
|
+
"version": "0.2.4",
|
|
5
5
|
"main": "index.ts",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"scripts": {
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"@commitlint/cli": "^19.8.0",
|
|
39
39
|
"@commitlint/config-conventional": "^19.8.0",
|
|
40
40
|
"@data-fair/lib-types-builder": "^1.8.0",
|
|
41
|
-
"@data-fair/types-catalogs": "^0.
|
|
41
|
+
"@data-fair/types-catalogs": "^0.5.1",
|
|
42
42
|
"@types/nock": "^10.0.3",
|
|
43
43
|
"chalk": "^5.4.1",
|
|
44
44
|
"dayjs": "^1.11.13",
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"use strict";
|
|
5
5
|
export const validate = validate14;
|
|
6
6
|
export default validate14;
|
|
7
|
-
const schema16 = {"$id":"https://github.com/data-fair/catalog-data-fair/catalog-config","x-exports":["types","validate","schema"],"title":"DataFairConfig","type":"object","additionalProperties":false,"required":["url"],"properties":{"url":{"type":"string","title":"URL","description":"The url of the catalog","x-i18n-description":{"fr":"L'URL du portail où le catalogue est publié. Par exemple: `https://opendata.koumoul.com`."},"pattern":"^https?://.*[^/]$","errorMessage":"The URL must start with http:// or https:// and must not end with `/`.","x-i18n-errorMessage":{"fr":"L'URL doit commencer par http:// ou https:// et ne pas se terminer par `/`."},"examples":["https://opendata.koumoul.com"]},"apiKey":{"type":"string","title":"API Key (Optional)","x-i18n-title":{"fr":"Clé API (Optionnelle)"},"description":"The Data Fair API key to access the catalog. You can create one from the 'Settings' tab in Data Fair, under the 'API Keys' section.","x-i18n-description":{"fr":"La clé API Data Fair pour accéder au catalogue. Vous pouvez en créer depuis l'onglet 'Paramètres' de Data Fair, dans la section 'Clés d'API'."},"layout":{"props":{"type":"password","autocomplete":"
|
|
7
|
+
const schema16 = {"$id":"https://github.com/data-fair/catalog-data-fair/catalog-config","x-exports":["types","validate","schema"],"title":"DataFairConfig","type":"object","additionalProperties":false,"required":["url"],"properties":{"url":{"type":"string","title":"URL","description":"The url of the catalog","x-i18n-description":{"fr":"L'URL du portail où le catalogue est publié. Par exemple: `https://opendata.koumoul.com`."},"pattern":"^https?://.*[^/]$","errorMessage":"The URL must start with http:// or https:// and must not end with `/`.","x-i18n-errorMessage":{"fr":"L'URL doit commencer par http:// ou https:// et ne pas se terminer par `/`."},"examples":["https://opendata.koumoul.com"]},"apiKey":{"type":"string","title":"API Key (Optional)","x-i18n-title":{"fr":"Clé API (Optionnelle)"},"description":"The Data Fair API key to access the catalog. You can create one from the 'Settings' tab in Data Fair, under the 'API Keys' section.","x-i18n-description":{"fr":"La clé API Data Fair pour accéder au catalogue. Vous pouvez en créer depuis l'onglet 'Paramètres' de Data Fair, dans la section 'Clés d'API'."},"layout":{"props":{"type":"password","autocomplete":"suppress"}}}}};
|
|
8
8
|
const pattern0 = new RegExp("^https?://.*[^/]$", "u");
|
|
9
9
|
|
|
10
10
|
function validate14(data, {instancePath="", parentData, parentDataProperty, rootData=data}={}){
|
|
@@ -101,6 +101,29 @@ export type DataFairDataset = {
|
|
|
101
101
|
| "daily"
|
|
102
102
|
| "continuous"
|
|
103
103
|
| "irregular";
|
|
104
|
+
/**
|
|
105
|
+
* URL d'une image, illustration du jeu de données
|
|
106
|
+
*/
|
|
107
|
+
image?: string;
|
|
108
|
+
license?: {
|
|
109
|
+
/**
|
|
110
|
+
* Short title for the license
|
|
111
|
+
*/
|
|
112
|
+
title: string;
|
|
113
|
+
/**
|
|
114
|
+
* The URL where the license can be read
|
|
115
|
+
*/
|
|
116
|
+
href: string;
|
|
117
|
+
};
|
|
118
|
+
analysis?: {
|
|
119
|
+
escapeKeyAlgorithm?: "compat-ods";
|
|
120
|
+
[k: string]: unknown;
|
|
121
|
+
};
|
|
122
|
+
projection?: {
|
|
123
|
+
code?: string;
|
|
124
|
+
title?: string;
|
|
125
|
+
[k: string]: unknown;
|
|
126
|
+
};
|
|
104
127
|
file?: {
|
|
105
128
|
/**
|
|
106
129
|
* Size of the file on disk
|
|
@@ -115,10 +138,6 @@ export type DataFairDataset = {
|
|
|
115
138
|
size: number;
|
|
116
139
|
[k: string]: unknown;
|
|
117
140
|
};
|
|
118
|
-
/**
|
|
119
|
-
* URL d'une image, illustration du jeu de données
|
|
120
|
-
*/
|
|
121
|
-
image?: string;
|
|
122
141
|
/**
|
|
123
142
|
* JSON schema properties of the fields
|
|
124
143
|
*/
|
|
@@ -229,16 +248,6 @@ export type DataFairDataset = {
|
|
|
229
248
|
* The number of rowns
|
|
230
249
|
*/
|
|
231
250
|
count?: number;
|
|
232
|
-
license?: {
|
|
233
|
-
/**
|
|
234
|
-
* Short title for the license
|
|
235
|
-
*/
|
|
236
|
-
title: string;
|
|
237
|
-
/**
|
|
238
|
-
* The URL where the license can be read
|
|
239
|
-
*/
|
|
240
|
-
href: string;
|
|
241
|
-
};
|
|
242
251
|
[k: string]: unknown;
|
|
243
252
|
}
|
|
244
253
|
|
|
@@ -0,0 +1,431 @@
|
|
|
1
|
+
export default {
|
|
2
|
+
$id: 'https://github.com/data-fair/catalog-data-fair/catalog-schemas',
|
|
3
|
+
'x-exports': [
|
|
4
|
+
'types'
|
|
5
|
+
],
|
|
6
|
+
title: 'DataFair Catalog',
|
|
7
|
+
type: 'object',
|
|
8
|
+
additionalProperties: false,
|
|
9
|
+
required: [
|
|
10
|
+
'count',
|
|
11
|
+
'results'
|
|
12
|
+
],
|
|
13
|
+
properties: {
|
|
14
|
+
count: {
|
|
15
|
+
type: 'number',
|
|
16
|
+
description: 'Nombre total de jeux de données'
|
|
17
|
+
},
|
|
18
|
+
results: {
|
|
19
|
+
type: 'array',
|
|
20
|
+
items: {
|
|
21
|
+
$ref: '#/$defs/DataFairDataset'
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
$defs: {
|
|
26
|
+
DataFairDataset: {
|
|
27
|
+
type: 'object',
|
|
28
|
+
required: [
|
|
29
|
+
'id',
|
|
30
|
+
'title'
|
|
31
|
+
],
|
|
32
|
+
properties: {
|
|
33
|
+
id: {
|
|
34
|
+
type: 'string',
|
|
35
|
+
description: 'Globally unique identifier of the dataset'
|
|
36
|
+
},
|
|
37
|
+
href: {
|
|
38
|
+
type: 'string',
|
|
39
|
+
description: 'Readonly field. The URL where this resource can be fetched'
|
|
40
|
+
},
|
|
41
|
+
page: {
|
|
42
|
+
type: 'string',
|
|
43
|
+
description: 'Readonly field. The URL where this resource can be viewed in the UI'
|
|
44
|
+
},
|
|
45
|
+
|
|
46
|
+
title: {
|
|
47
|
+
type: 'string',
|
|
48
|
+
description: 'Short title of the dataset'
|
|
49
|
+
},
|
|
50
|
+
description: {
|
|
51
|
+
type: 'string',
|
|
52
|
+
description: 'Detailed description of the dataset'
|
|
53
|
+
},
|
|
54
|
+
|
|
55
|
+
keywords: {
|
|
56
|
+
type: 'array',
|
|
57
|
+
description: 'keywords',
|
|
58
|
+
items: {
|
|
59
|
+
type: 'string'
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
frequency: {
|
|
63
|
+
type: 'string',
|
|
64
|
+
description: 'update frequency',
|
|
65
|
+
enum: [
|
|
66
|
+
'',
|
|
67
|
+
'triennial',
|
|
68
|
+
'biennial',
|
|
69
|
+
'annual',
|
|
70
|
+
'semiannual',
|
|
71
|
+
'threeTimesAYear',
|
|
72
|
+
'quarterly',
|
|
73
|
+
'bimonthly',
|
|
74
|
+
'monthly',
|
|
75
|
+
'semimonthly',
|
|
76
|
+
'biweekly',
|
|
77
|
+
'threeTimesAMonth',
|
|
78
|
+
'weekly',
|
|
79
|
+
'semiweekly',
|
|
80
|
+
'threeTimesAWeek',
|
|
81
|
+
'daily',
|
|
82
|
+
'continuous',
|
|
83
|
+
'irregular'
|
|
84
|
+
]
|
|
85
|
+
},
|
|
86
|
+
image: {
|
|
87
|
+
type: 'string',
|
|
88
|
+
description: "URL d'une image, illustration du jeu de données"
|
|
89
|
+
},
|
|
90
|
+
license: {
|
|
91
|
+
type: 'object',
|
|
92
|
+
additionalProperties: false,
|
|
93
|
+
required: [
|
|
94
|
+
'title',
|
|
95
|
+
'href'
|
|
96
|
+
],
|
|
97
|
+
properties: {
|
|
98
|
+
title: {
|
|
99
|
+
type: 'string',
|
|
100
|
+
description: 'Short title for the license'
|
|
101
|
+
},
|
|
102
|
+
href: {
|
|
103
|
+
type: 'string',
|
|
104
|
+
description: 'The URL where the license can be read'
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
|
|
109
|
+
analysis: {
|
|
110
|
+
type: 'object',
|
|
111
|
+
properties: {
|
|
112
|
+
escapeKeyAlgorithm: {
|
|
113
|
+
type: 'string',
|
|
114
|
+
enum: [
|
|
115
|
+
'compat-ods'
|
|
116
|
+
]
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
},
|
|
120
|
+
projection: {
|
|
121
|
+
type: 'object',
|
|
122
|
+
properties: {
|
|
123
|
+
code: { type: 'string' },
|
|
124
|
+
title: { type: 'string' }
|
|
125
|
+
}
|
|
126
|
+
},
|
|
127
|
+
|
|
128
|
+
file: {
|
|
129
|
+
type: 'object',
|
|
130
|
+
required: [
|
|
131
|
+
'size'
|
|
132
|
+
],
|
|
133
|
+
properties: {
|
|
134
|
+
size: {
|
|
135
|
+
type: 'number',
|
|
136
|
+
description: 'Size of the file on disk'
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
},
|
|
140
|
+
originalFile: {
|
|
141
|
+
type: 'object',
|
|
142
|
+
required: [
|
|
143
|
+
'size'
|
|
144
|
+
],
|
|
145
|
+
properties: {
|
|
146
|
+
size: {
|
|
147
|
+
type: 'number',
|
|
148
|
+
description: 'Size of the file on disk'
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
},
|
|
152
|
+
schema: {
|
|
153
|
+
type: 'array',
|
|
154
|
+
description: 'JSON schema properties of the fields',
|
|
155
|
+
items: {
|
|
156
|
+
type: 'object',
|
|
157
|
+
required: [
|
|
158
|
+
'key'
|
|
159
|
+
],
|
|
160
|
+
properties: {
|
|
161
|
+
key: {
|
|
162
|
+
type: 'string',
|
|
163
|
+
readOnly: true,
|
|
164
|
+
'x-display': 'hidden'
|
|
165
|
+
},
|
|
166
|
+
type: {
|
|
167
|
+
type: 'string'
|
|
168
|
+
},
|
|
169
|
+
format: {
|
|
170
|
+
type: [
|
|
171
|
+
'string',
|
|
172
|
+
'null'
|
|
173
|
+
]
|
|
174
|
+
},
|
|
175
|
+
'x-originalName': {
|
|
176
|
+
type: [
|
|
177
|
+
'string',
|
|
178
|
+
'null'
|
|
179
|
+
]
|
|
180
|
+
},
|
|
181
|
+
title: {
|
|
182
|
+
type: 'string'
|
|
183
|
+
},
|
|
184
|
+
description: {
|
|
185
|
+
type: 'string'
|
|
186
|
+
},
|
|
187
|
+
icon: {
|
|
188
|
+
type: 'string'
|
|
189
|
+
},
|
|
190
|
+
'x-group': {
|
|
191
|
+
type: 'string'
|
|
192
|
+
},
|
|
193
|
+
'x-refersTo': {
|
|
194
|
+
deprecated: true,
|
|
195
|
+
type: [
|
|
196
|
+
'string',
|
|
197
|
+
'null'
|
|
198
|
+
]
|
|
199
|
+
},
|
|
200
|
+
'x-concept': {
|
|
201
|
+
type: 'object',
|
|
202
|
+
properties: {
|
|
203
|
+
id: {
|
|
204
|
+
type: 'string'
|
|
205
|
+
},
|
|
206
|
+
title: {
|
|
207
|
+
type: 'string'
|
|
208
|
+
},
|
|
209
|
+
primary: {
|
|
210
|
+
type: 'boolean'
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
},
|
|
214
|
+
'x-calculated': {
|
|
215
|
+
type: 'boolean'
|
|
216
|
+
},
|
|
217
|
+
'x-capabilities': {
|
|
218
|
+
type: 'object',
|
|
219
|
+
properties: {
|
|
220
|
+
index: {
|
|
221
|
+
type: 'boolean',
|
|
222
|
+
default: true,
|
|
223
|
+
'x-display': 'switch',
|
|
224
|
+
title: 'Filtrable sur valeur exacte',
|
|
225
|
+
description: 'Désactivez cette capacité si la donnée contient par exemple des textes longs pour lesquels des filtres sur valeurs exactes ont peu de sens.'
|
|
226
|
+
},
|
|
227
|
+
values: {
|
|
228
|
+
type: 'boolean',
|
|
229
|
+
default: true,
|
|
230
|
+
'x-display': 'switch',
|
|
231
|
+
title: 'Triable et groupable',
|
|
232
|
+
description: 'Désactivez cette capacité si la donnée contient par exemple des textes longs pour lesquels trier ou grouper par valeur a peu de sens.'
|
|
233
|
+
},
|
|
234
|
+
textStandard: {
|
|
235
|
+
type: 'boolean',
|
|
236
|
+
default: true,
|
|
237
|
+
'x-display': 'switch',
|
|
238
|
+
title: 'Texte analysé pour recherche textuelle',
|
|
239
|
+
description: "Désactivez cette capacité dans le cas d'un code, une url, etc. N'importe quel contenu sur lequel la recherche de mots a peu de sens."
|
|
240
|
+
},
|
|
241
|
+
text: {
|
|
242
|
+
type: 'boolean',
|
|
243
|
+
default: true,
|
|
244
|
+
'x-display': 'switch',
|
|
245
|
+
title: 'Texte analysé spécifiquement pour la langue française',
|
|
246
|
+
description: "Désactivez cette capacité pour tout contenu qui n'est pas en langue française ou pour lequel la recherche de mots a peu de sens."
|
|
247
|
+
},
|
|
248
|
+
textAgg: {
|
|
249
|
+
type: 'boolean',
|
|
250
|
+
default: false,
|
|
251
|
+
'x-display': 'switch',
|
|
252
|
+
title: 'Statistiques de mots',
|
|
253
|
+
description: "Activez cette capacité si avez l'intention d'obtenir des statistiques sur les occurrences de mots (par exemple pour construire un nuage de mot)."
|
|
254
|
+
},
|
|
255
|
+
wildcard: {
|
|
256
|
+
type: 'boolean',
|
|
257
|
+
default: false,
|
|
258
|
+
'x-display': 'switch',
|
|
259
|
+
title: 'Texte filtrable sur groupe de caractères',
|
|
260
|
+
description: "Activez cette capacité si vous avez l'intention de filtrer ce contenu spécifiquement sur une suite de caractères (par exemple si un filtre sur mots entiers ou sur valeur exacte ne convient pas)."
|
|
261
|
+
},
|
|
262
|
+
insensitive: {
|
|
263
|
+
type: 'boolean',
|
|
264
|
+
default: true,
|
|
265
|
+
'x-display': 'switch',
|
|
266
|
+
title: 'Tri amélioré avec casse et accents',
|
|
267
|
+
description: 'Désactivez cette capacité si le contenu ne sera pas utilisé pour du tri ou bien si il ne contient pas de variations avec accents et majuscules.'
|
|
268
|
+
},
|
|
269
|
+
geoShape: {
|
|
270
|
+
type: 'boolean',
|
|
271
|
+
default: true,
|
|
272
|
+
'x-display': 'switch',
|
|
273
|
+
title: 'Formes géométriques complexes',
|
|
274
|
+
description: 'Désactivez cette capacité si la donnée ne contient que des géométries basiques de points ou bien si requêter les géométries uniquement à partir de leurs centroïdes est suffisant pour vos besoins.'
|
|
275
|
+
},
|
|
276
|
+
vtPrepare: {
|
|
277
|
+
type: 'boolean',
|
|
278
|
+
default: false,
|
|
279
|
+
'x-display': 'switch',
|
|
280
|
+
title: 'Tuiles vectorielles préparées',
|
|
281
|
+
description: "Activez cette capacité pour précalculer des éléments utiles à la construction de tuiles vectorielles pour le rendu cartographique du jeu de données. Activez cette option si le jeu de données contient des données géogreaphiques denses à afficher en grande quantité. La contre-partie est une augmentation du temps d'indexation et du volume de données indexées."
|
|
282
|
+
},
|
|
283
|
+
indexAttachment: {
|
|
284
|
+
type: 'boolean',
|
|
285
|
+
default: true,
|
|
286
|
+
'x-display': 'switch',
|
|
287
|
+
title: 'Contenu des pièces jointes analysé pour recherche textuelle',
|
|
288
|
+
description: "Désactivez cette option si vous souhaitez que les pièces jointes soient simplement téléchargeables et que l'extraction de leur contenu textuel pour recherche de mots n'est pas pertinente."
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
},
|
|
292
|
+
'x-labels': {
|
|
293
|
+
type: 'object',
|
|
294
|
+
patternProperties: {
|
|
295
|
+
'.*': {
|
|
296
|
+
type: 'string'
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
},
|
|
300
|
+
'x-labelsRestricted': {
|
|
301
|
+
type: 'boolean'
|
|
302
|
+
},
|
|
303
|
+
readOnly: {
|
|
304
|
+
type: 'boolean'
|
|
305
|
+
},
|
|
306
|
+
'x-required': {
|
|
307
|
+
type: 'boolean'
|
|
308
|
+
},
|
|
309
|
+
minLength: {
|
|
310
|
+
type: 'integer'
|
|
311
|
+
},
|
|
312
|
+
maxLength: {
|
|
313
|
+
type: 'integer'
|
|
314
|
+
},
|
|
315
|
+
minimum: {
|
|
316
|
+
type: 'number'
|
|
317
|
+
},
|
|
318
|
+
maximum: {
|
|
319
|
+
type: 'number'
|
|
320
|
+
},
|
|
321
|
+
pattern: {
|
|
322
|
+
type: 'string',
|
|
323
|
+
format: 'regex'
|
|
324
|
+
},
|
|
325
|
+
patternErrorMessage: {
|
|
326
|
+
type: 'string'
|
|
327
|
+
},
|
|
328
|
+
'x-master': {
|
|
329
|
+
type: 'object',
|
|
330
|
+
properties: {
|
|
331
|
+
id: {
|
|
332
|
+
type: 'string'
|
|
333
|
+
},
|
|
334
|
+
title: {
|
|
335
|
+
type: 'string'
|
|
336
|
+
},
|
|
337
|
+
remoteService: {
|
|
338
|
+
type: 'string',
|
|
339
|
+
description: "L'identifiant du service distant utilisé pour l'enrichissement"
|
|
340
|
+
},
|
|
341
|
+
action: {
|
|
342
|
+
type: 'string',
|
|
343
|
+
description: "L'identifiant de l'action du service distant à utiliser pour l'enrichissement"
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
},
|
|
347
|
+
'x-display': {
|
|
348
|
+
type: 'string'
|
|
349
|
+
},
|
|
350
|
+
enum: {
|
|
351
|
+
type: 'array',
|
|
352
|
+
readOnly: true,
|
|
353
|
+
description: 'This differs from JSON schema. It is not a restriction, just and observation of the values that are present in the dataset.'
|
|
354
|
+
},
|
|
355
|
+
'x-cardinality': {
|
|
356
|
+
type: 'integer',
|
|
357
|
+
description: 'The number of distinct values for this field',
|
|
358
|
+
readOnly: true
|
|
359
|
+
},
|
|
360
|
+
'x-transform': {
|
|
361
|
+
type: 'object',
|
|
362
|
+
description: 'Transformation to apply to the field',
|
|
363
|
+
properties: {
|
|
364
|
+
expr: {
|
|
365
|
+
type: 'string'
|
|
366
|
+
},
|
|
367
|
+
examples: {
|
|
368
|
+
type: 'array',
|
|
369
|
+
items: {
|
|
370
|
+
type: 'string'
|
|
371
|
+
}
|
|
372
|
+
},
|
|
373
|
+
type: {
|
|
374
|
+
type: 'string'
|
|
375
|
+
},
|
|
376
|
+
format: {
|
|
377
|
+
type: 'string'
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
},
|
|
384
|
+
storage: {
|
|
385
|
+
type: 'object',
|
|
386
|
+
description: 'All storage space info of this dataset',
|
|
387
|
+
properties: {
|
|
388
|
+
size: {
|
|
389
|
+
type: 'integer'
|
|
390
|
+
},
|
|
391
|
+
dataFiles: {
|
|
392
|
+
type: 'array',
|
|
393
|
+
description: 'Le tableau de résultats.',
|
|
394
|
+
items: {
|
|
395
|
+
type: 'object',
|
|
396
|
+
properties: {
|
|
397
|
+
key: {
|
|
398
|
+
type: 'string'
|
|
399
|
+
},
|
|
400
|
+
size: {
|
|
401
|
+
type: 'number'
|
|
402
|
+
},
|
|
403
|
+
name: {
|
|
404
|
+
type: 'string'
|
|
405
|
+
},
|
|
406
|
+
mimetype: {
|
|
407
|
+
type: 'string'
|
|
408
|
+
},
|
|
409
|
+
updatedAt: {
|
|
410
|
+
type: 'string',
|
|
411
|
+
format: 'date-time'
|
|
412
|
+
},
|
|
413
|
+
title: {
|
|
414
|
+
type: 'string'
|
|
415
|
+
},
|
|
416
|
+
url: {
|
|
417
|
+
type: 'string'
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
}
|
|
421
|
+
}
|
|
422
|
+
}
|
|
423
|
+
},
|
|
424
|
+
count: {
|
|
425
|
+
type: 'number',
|
|
426
|
+
description: 'The number of rowns'
|
|
427
|
+
}
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
}
|
|
431
|
+
}
|
|
@@ -1,409 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$id": "https://github.com/data-fair/catalog-data-fair/catalog-schemas",
|
|
3
|
-
"x-exports": [
|
|
4
|
-
"types"
|
|
5
|
-
],
|
|
6
|
-
"title": "DataFair Catalog",
|
|
7
|
-
"type": "object",
|
|
8
|
-
"additionalProperties": false,
|
|
9
|
-
"required": [
|
|
10
|
-
"count",
|
|
11
|
-
"results"
|
|
12
|
-
],
|
|
13
|
-
"properties": {
|
|
14
|
-
"count": {
|
|
15
|
-
"type": "number",
|
|
16
|
-
"description": "Nombre total de jeux de données"
|
|
17
|
-
},
|
|
18
|
-
"results": {
|
|
19
|
-
"type": "array",
|
|
20
|
-
"items": {
|
|
21
|
-
"$ref": "#/$defs/DataFairDataset"
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
},
|
|
25
|
-
"$defs": {
|
|
26
|
-
"DataFairDataset": {
|
|
27
|
-
"type": "object",
|
|
28
|
-
"required": [
|
|
29
|
-
"id",
|
|
30
|
-
"title"
|
|
31
|
-
],
|
|
32
|
-
"properties": {
|
|
33
|
-
"id": {
|
|
34
|
-
"type": "string",
|
|
35
|
-
"description": "Globally unique identifier of the dataset"
|
|
36
|
-
},
|
|
37
|
-
"href": {
|
|
38
|
-
"type": "string",
|
|
39
|
-
"description": "Readonly field. The URL where this resource can be fetched"
|
|
40
|
-
},
|
|
41
|
-
"page": {
|
|
42
|
-
"type": "string",
|
|
43
|
-
"description": "Readonly field. The URL where this resource can be viewed in the UI"
|
|
44
|
-
},
|
|
45
|
-
"title": {
|
|
46
|
-
"type": "string",
|
|
47
|
-
"description": "Short title of the dataset"
|
|
48
|
-
},
|
|
49
|
-
"description": {
|
|
50
|
-
"type": "string",
|
|
51
|
-
"description": "Detailed description of the dataset"
|
|
52
|
-
},
|
|
53
|
-
"keywords": {
|
|
54
|
-
"type": "array",
|
|
55
|
-
"description": "keywords",
|
|
56
|
-
"items": {
|
|
57
|
-
"type": "string"
|
|
58
|
-
}
|
|
59
|
-
},
|
|
60
|
-
"frequency": {
|
|
61
|
-
"type": "string",
|
|
62
|
-
"description": "update frequency",
|
|
63
|
-
"enum": [
|
|
64
|
-
"",
|
|
65
|
-
"triennial",
|
|
66
|
-
"biennial",
|
|
67
|
-
"annual",
|
|
68
|
-
"semiannual",
|
|
69
|
-
"threeTimesAYear",
|
|
70
|
-
"quarterly",
|
|
71
|
-
"bimonthly",
|
|
72
|
-
"monthly",
|
|
73
|
-
"semimonthly",
|
|
74
|
-
"biweekly",
|
|
75
|
-
"threeTimesAMonth",
|
|
76
|
-
"weekly",
|
|
77
|
-
"semiweekly",
|
|
78
|
-
"threeTimesAWeek",
|
|
79
|
-
"daily",
|
|
80
|
-
"continuous",
|
|
81
|
-
"irregular"
|
|
82
|
-
]
|
|
83
|
-
},
|
|
84
|
-
"file": {
|
|
85
|
-
"type": "object",
|
|
86
|
-
"required": [
|
|
87
|
-
"size"
|
|
88
|
-
],
|
|
89
|
-
"properties": {
|
|
90
|
-
"size": {
|
|
91
|
-
"type": "number",
|
|
92
|
-
"description": "Size of the file on disk"
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
},
|
|
96
|
-
"originalFile": {
|
|
97
|
-
"type": "object",
|
|
98
|
-
"required": [
|
|
99
|
-
"size"
|
|
100
|
-
],
|
|
101
|
-
"properties": {
|
|
102
|
-
"size": {
|
|
103
|
-
"type": "number",
|
|
104
|
-
"description": "Size of the file on disk"
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
},
|
|
108
|
-
"image": {
|
|
109
|
-
"type": "string",
|
|
110
|
-
"description": "URL d'une image, illustration du jeu de données"
|
|
111
|
-
},
|
|
112
|
-
"schema": {
|
|
113
|
-
"type": "array",
|
|
114
|
-
"description": "JSON schema properties of the fields",
|
|
115
|
-
"items": {
|
|
116
|
-
"type": "object",
|
|
117
|
-
"required": [
|
|
118
|
-
"key"
|
|
119
|
-
],
|
|
120
|
-
"properties": {
|
|
121
|
-
"key": {
|
|
122
|
-
"type": "string",
|
|
123
|
-
"readOnly": true,
|
|
124
|
-
"x-display": "hidden"
|
|
125
|
-
},
|
|
126
|
-
"type": {
|
|
127
|
-
"type": "string"
|
|
128
|
-
},
|
|
129
|
-
"format": {
|
|
130
|
-
"type": [
|
|
131
|
-
"string",
|
|
132
|
-
"null"
|
|
133
|
-
]
|
|
134
|
-
},
|
|
135
|
-
"x-originalName": {
|
|
136
|
-
"type": [
|
|
137
|
-
"string",
|
|
138
|
-
"null"
|
|
139
|
-
]
|
|
140
|
-
},
|
|
141
|
-
"title": {
|
|
142
|
-
"type": "string"
|
|
143
|
-
},
|
|
144
|
-
"description": {
|
|
145
|
-
"type": "string"
|
|
146
|
-
},
|
|
147
|
-
"icon": {
|
|
148
|
-
"type": "string"
|
|
149
|
-
},
|
|
150
|
-
"x-group": {
|
|
151
|
-
"type": "string"
|
|
152
|
-
},
|
|
153
|
-
"x-refersTo": {
|
|
154
|
-
"deprecated": true,
|
|
155
|
-
"type": [
|
|
156
|
-
"string",
|
|
157
|
-
"null"
|
|
158
|
-
]
|
|
159
|
-
},
|
|
160
|
-
"x-concept": {
|
|
161
|
-
"type": "object",
|
|
162
|
-
"properties": {
|
|
163
|
-
"id": {
|
|
164
|
-
"type": "string"
|
|
165
|
-
},
|
|
166
|
-
"title": {
|
|
167
|
-
"type": "string"
|
|
168
|
-
},
|
|
169
|
-
"primary": {
|
|
170
|
-
"type": "boolean"
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
},
|
|
174
|
-
"x-calculated": {
|
|
175
|
-
"type": "boolean"
|
|
176
|
-
},
|
|
177
|
-
"x-capabilities": {
|
|
178
|
-
"type": "object",
|
|
179
|
-
"properties": {
|
|
180
|
-
"index": {
|
|
181
|
-
"type": "boolean",
|
|
182
|
-
"default": true,
|
|
183
|
-
"x-display": "switch",
|
|
184
|
-
"title": "Filtrable sur valeur exacte",
|
|
185
|
-
"description": "Désactivez cette capacité si la donnée contient par exemple des textes longs pour lesquels des filtres sur valeurs exactes ont peu de sens."
|
|
186
|
-
},
|
|
187
|
-
"values": {
|
|
188
|
-
"type": "boolean",
|
|
189
|
-
"default": true,
|
|
190
|
-
"x-display": "switch",
|
|
191
|
-
"title": "Triable et groupable",
|
|
192
|
-
"description": "Désactivez cette capacité si la donnée contient par exemple des textes longs pour lesquels trier ou grouper par valeur a peu de sens."
|
|
193
|
-
},
|
|
194
|
-
"textStandard": {
|
|
195
|
-
"type": "boolean",
|
|
196
|
-
"default": true,
|
|
197
|
-
"x-display": "switch",
|
|
198
|
-
"title": "Texte analysé pour recherche textuelle",
|
|
199
|
-
"description": "Désactivez cette capacité dans le cas d'un code, une url, etc. N'importe quel contenu sur lequel la recherche de mots a peu de sens."
|
|
200
|
-
},
|
|
201
|
-
"text": {
|
|
202
|
-
"type": "boolean",
|
|
203
|
-
"default": true,
|
|
204
|
-
"x-display": "switch",
|
|
205
|
-
"title": "Texte analysé spécifiquement pour la langue française",
|
|
206
|
-
"description": "Désactivez cette capacité pour tout contenu qui n'est pas en langue française ou pour lequel la recherche de mots a peu de sens."
|
|
207
|
-
},
|
|
208
|
-
"textAgg": {
|
|
209
|
-
"type": "boolean",
|
|
210
|
-
"default": false,
|
|
211
|
-
"x-display": "switch",
|
|
212
|
-
"title": "Statistiques de mots",
|
|
213
|
-
"description": "Activez cette capacité si avez l'intention d'obtenir des statistiques sur les occurrences de mots (par exemple pour construire un nuage de mot)."
|
|
214
|
-
},
|
|
215
|
-
"wildcard": {
|
|
216
|
-
"type": "boolean",
|
|
217
|
-
"default": false,
|
|
218
|
-
"x-display": "switch",
|
|
219
|
-
"title": "Texte filtrable sur groupe de caractères",
|
|
220
|
-
"description": "Activez cette capacité si vous avez l'intention de filtrer ce contenu spécifiquement sur une suite de caractères (par exemple si un filtre sur mots entiers ou sur valeur exacte ne convient pas)."
|
|
221
|
-
},
|
|
222
|
-
"insensitive": {
|
|
223
|
-
"type": "boolean",
|
|
224
|
-
"default": true,
|
|
225
|
-
"x-display": "switch",
|
|
226
|
-
"title": "Tri amélioré avec casse et accents",
|
|
227
|
-
"description": "Désactivez cette capacité si le contenu ne sera pas utilisé pour du tri ou bien si il ne contient pas de variations avec accents et majuscules."
|
|
228
|
-
},
|
|
229
|
-
"geoShape": {
|
|
230
|
-
"type": "boolean",
|
|
231
|
-
"default": true,
|
|
232
|
-
"x-display": "switch",
|
|
233
|
-
"title": "Formes géométriques complexes",
|
|
234
|
-
"description": "Désactivez cette capacité si la donnée ne contient que des géométries basiques de points ou bien si requêter les géométries uniquement à partir de leurs centroïdes est suffisant pour vos besoins."
|
|
235
|
-
},
|
|
236
|
-
"vtPrepare": {
|
|
237
|
-
"type": "boolean",
|
|
238
|
-
"default": false,
|
|
239
|
-
"x-display": "switch",
|
|
240
|
-
"title": "Tuiles vectorielles préparées",
|
|
241
|
-
"description": "Activez cette capacité pour précalculer des éléments utiles à la construction de tuiles vectorielles pour le rendu cartographique du jeu de données. Activez cette option si le jeu de données contient des données géogreaphiques denses à afficher en grande quantité. La contre-partie est une augmentation du temps d'indexation et du volume de données indexées."
|
|
242
|
-
},
|
|
243
|
-
"indexAttachment": {
|
|
244
|
-
"type": "boolean",
|
|
245
|
-
"default": true,
|
|
246
|
-
"x-display": "switch",
|
|
247
|
-
"title": "Contenu des pièces jointes analysé pour recherche textuelle",
|
|
248
|
-
"description": "Désactivez cette option si vous souhaitez que les pièces jointes soient simplement téléchargeables et que l'extraction de leur contenu textuel pour recherche de mots n'est pas pertinente."
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
},
|
|
252
|
-
"x-labels": {
|
|
253
|
-
"type": "object",
|
|
254
|
-
"patternProperties": {
|
|
255
|
-
".*": {
|
|
256
|
-
"type": "string"
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
},
|
|
260
|
-
"x-labelsRestricted": {
|
|
261
|
-
"type": "boolean"
|
|
262
|
-
},
|
|
263
|
-
"readOnly": {
|
|
264
|
-
"type": "boolean"
|
|
265
|
-
},
|
|
266
|
-
"x-required": {
|
|
267
|
-
"type": "boolean"
|
|
268
|
-
},
|
|
269
|
-
"minLength": {
|
|
270
|
-
"type": "integer"
|
|
271
|
-
},
|
|
272
|
-
"maxLength": {
|
|
273
|
-
"type": "integer"
|
|
274
|
-
},
|
|
275
|
-
"minimum": {
|
|
276
|
-
"type": "number"
|
|
277
|
-
},
|
|
278
|
-
"maximum": {
|
|
279
|
-
"type": "number"
|
|
280
|
-
},
|
|
281
|
-
"pattern": {
|
|
282
|
-
"type": "string",
|
|
283
|
-
"format": "regex"
|
|
284
|
-
},
|
|
285
|
-
"patternErrorMessage": {
|
|
286
|
-
"type": "string"
|
|
287
|
-
},
|
|
288
|
-
"x-master": {
|
|
289
|
-
"type": "object",
|
|
290
|
-
"properties": {
|
|
291
|
-
"id": {
|
|
292
|
-
"type": "string"
|
|
293
|
-
},
|
|
294
|
-
"title": {
|
|
295
|
-
"type": "string"
|
|
296
|
-
},
|
|
297
|
-
"remoteService": {
|
|
298
|
-
"type": "string",
|
|
299
|
-
"description": "L'identifiant du service distant utilisé pour l'enrichissement"
|
|
300
|
-
},
|
|
301
|
-
"action": {
|
|
302
|
-
"type": "string",
|
|
303
|
-
"description": "L'identifiant de l'action du service distant à utiliser pour l'enrichissement"
|
|
304
|
-
}
|
|
305
|
-
}
|
|
306
|
-
},
|
|
307
|
-
"x-display": {
|
|
308
|
-
"type": "string"
|
|
309
|
-
},
|
|
310
|
-
"enum": {
|
|
311
|
-
"type": "array",
|
|
312
|
-
"readOnly": true,
|
|
313
|
-
"description": "This differs from JSON schema. It is not a restriction, just and observation of the values that are present in the dataset."
|
|
314
|
-
},
|
|
315
|
-
"x-cardinality": {
|
|
316
|
-
"type": "integer",
|
|
317
|
-
"description": "The number of distinct values for this field",
|
|
318
|
-
"readOnly": true
|
|
319
|
-
},
|
|
320
|
-
"x-transform": {
|
|
321
|
-
"type": "object",
|
|
322
|
-
"description": "Transformation to apply to the field",
|
|
323
|
-
"properties": {
|
|
324
|
-
"expr": {
|
|
325
|
-
"type": "string"
|
|
326
|
-
},
|
|
327
|
-
"examples": {
|
|
328
|
-
"type": "array",
|
|
329
|
-
"items": {
|
|
330
|
-
"type": "string"
|
|
331
|
-
}
|
|
332
|
-
},
|
|
333
|
-
"type": {
|
|
334
|
-
"type": "string"
|
|
335
|
-
},
|
|
336
|
-
"format": {
|
|
337
|
-
"type": "string"
|
|
338
|
-
}
|
|
339
|
-
}
|
|
340
|
-
}
|
|
341
|
-
}
|
|
342
|
-
}
|
|
343
|
-
},
|
|
344
|
-
"storage": {
|
|
345
|
-
"type": "object",
|
|
346
|
-
"description": "All storage space info of this dataset",
|
|
347
|
-
"properties": {
|
|
348
|
-
"size": {
|
|
349
|
-
"type": "integer"
|
|
350
|
-
},
|
|
351
|
-
"dataFiles": {
|
|
352
|
-
"type": "array",
|
|
353
|
-
"description": "Le tableau de résultats.",
|
|
354
|
-
"items": {
|
|
355
|
-
"type": "object",
|
|
356
|
-
"properties": {
|
|
357
|
-
"key": {
|
|
358
|
-
"type": "string"
|
|
359
|
-
},
|
|
360
|
-
"size": {
|
|
361
|
-
"type": "number"
|
|
362
|
-
},
|
|
363
|
-
"name": {
|
|
364
|
-
"type": "string"
|
|
365
|
-
},
|
|
366
|
-
"mimetype": {
|
|
367
|
-
"type": "string"
|
|
368
|
-
},
|
|
369
|
-
"updatedAt": {
|
|
370
|
-
"type": "string",
|
|
371
|
-
"format": "date-time"
|
|
372
|
-
},
|
|
373
|
-
"title": {
|
|
374
|
-
"type": "string"
|
|
375
|
-
},
|
|
376
|
-
"url": {
|
|
377
|
-
"type": "string"
|
|
378
|
-
}
|
|
379
|
-
}
|
|
380
|
-
}
|
|
381
|
-
}
|
|
382
|
-
}
|
|
383
|
-
},
|
|
384
|
-
"count": {
|
|
385
|
-
"type": "number",
|
|
386
|
-
"description": "The number of rowns"
|
|
387
|
-
},
|
|
388
|
-
"license": {
|
|
389
|
-
"type": "object",
|
|
390
|
-
"additionalProperties": false,
|
|
391
|
-
"required": [
|
|
392
|
-
"title",
|
|
393
|
-
"href"
|
|
394
|
-
],
|
|
395
|
-
"properties": {
|
|
396
|
-
"title": {
|
|
397
|
-
"type": "string",
|
|
398
|
-
"description": "Short title for the license"
|
|
399
|
-
},
|
|
400
|
-
"href": {
|
|
401
|
-
"type": "string",
|
|
402
|
-
"description": "The URL where the license can be read"
|
|
403
|
-
}
|
|
404
|
-
}
|
|
405
|
-
}
|
|
406
|
-
}
|
|
407
|
-
}
|
|
408
|
-
}
|
|
409
|
-
}
|