decidim 0.30.1 → 0.31.0.rc1

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.
Files changed (86) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +5 -9
  3. data/decidim-core/lib/decidim/{webpacker → shakapacker}/configuration.rb +4 -4
  4. data/decidim-core/lib/decidim/{webpacker → shakapacker}/runner.rb +3 -3
  5. data/decidim-core/lib/decidim/shakapacker/shakapacker.rb +8 -0
  6. data/decidim-core/lib/decidim/{webpacker → shakapacker}/shakapacker.yml +3 -1
  7. data/decidim-core/lib/decidim/{webpacker → shakapacker}/webpack/custom.js +1 -1
  8. data/decidim.gemspec +1 -1
  9. data/docs/antora.yml +1 -1
  10. data/docs/modules/configure/pages/environment_variables.adoc +184 -35
  11. data/docs/modules/configure/pages/index.adoc +2 -3
  12. data/docs/modules/configure/pages/initializer.adoc +45 -31
  13. data/docs/modules/configure/pages/system.adoc +3 -3
  14. data/docs/modules/customize/assets/images/social-share-modal-default.png +0 -0
  15. data/docs/modules/customize/pages/admin_filters.adoc +2 -2
  16. data/docs/modules/customize/pages/content_security_policy.adoc +1 -1
  17. data/docs/modules/customize/pages/images.adoc +1 -1
  18. data/docs/modules/customize/pages/index.adoc +1 -0
  19. data/docs/modules/customize/pages/javascript.adoc +5 -18
  20. data/docs/modules/customize/pages/localization.adoc +75 -0
  21. data/docs/modules/customize/pages/oauth.adoc +12 -0
  22. data/docs/modules/customize/pages/social_shares.adoc +0 -3
  23. data/docs/modules/customize/pages/styles.adoc +3 -16
  24. data/docs/modules/develop/assets/attachments/grafana/metadecidim-csv.json +1106 -0
  25. data/docs/modules/develop/assets/attachments/grafana/metadecidim-graphql.json +632 -0
  26. data/docs/modules/develop/assets/images/grafana/create_account_confirm.png +0 -0
  27. data/docs/modules/develop/assets/images/grafana/create_account_form.png +0 -0
  28. data/docs/modules/develop/assets/images/grafana/create_account_setup.png +0 -0
  29. data/docs/modules/develop/assets/images/grafana/dashboard_example_csv.png +0 -0
  30. data/docs/modules/develop/assets/images/grafana/dashboard_example_graphql.png +0 -0
  31. data/docs/modules/develop/assets/images/grafana/dashboard_import.png +0 -0
  32. data/docs/modules/develop/assets/images/grafana/dashboard_import_csv.png +0 -0
  33. data/docs/modules/develop/assets/images/grafana/dashboards.png +0 -0
  34. data/docs/modules/develop/assets/images/grafana/homepage.png +0 -0
  35. data/docs/modules/develop/pages/api.adoc +12 -2
  36. data/docs/modules/develop/pages/classes/models.adoc +2 -2
  37. data/docs/modules/develop/pages/commentable.adoc +9 -11
  38. data/docs/modules/develop/pages/components.adoc +10 -10
  39. data/docs/modules/develop/pages/elections.adoc +101 -0
  40. data/docs/modules/develop/pages/fixing_locales.adoc +7 -12
  41. data/docs/modules/develop/pages/grafana.adoc +100 -0
  42. data/docs/modules/develop/pages/likeable.adoc +106 -0
  43. data/docs/modules/develop/pages/machine_translations.adoc +6 -2
  44. data/docs/modules/develop/pages/maintainers/releases.adoc +40 -202
  45. data/docs/modules/develop/pages/maps.adoc +8 -8
  46. data/docs/modules/develop/pages/modules.adoc +1 -1
  47. data/docs/modules/develop/pages/notifications.adoc +27 -56
  48. data/docs/modules/develop/pages/permissions.adoc +19 -19
  49. data/docs/modules/develop/pages/share_tokens.adoc +2 -2
  50. data/docs/modules/develop/pages/taxonomies.adoc +1 -15
  51. data/docs/modules/install/pages/checklist.adoc +2 -1
  52. data/docs/modules/install/pages/index.adoc +7 -12
  53. data/docs/modules/install/pages/manual.adoc +27 -35
  54. data/docs/modules/install/pages/update.adoc +0 -2
  55. data/docs/modules/install/partials/version_matrix.adoc +4 -2
  56. data/docs/modules/services/pages/activestorage.adoc +4 -3
  57. data/docs/modules/services/pages/aitools.adoc +0 -2
  58. data/docs/modules/services/pages/etherpad.adoc +5 -20
  59. data/docs/modules/services/pages/machine_translation.adoc +38 -0
  60. data/docs/modules/services/pages/maps.adoc +8 -66
  61. data/docs/modules/services/pages/pdf.adoc +33 -0
  62. data/docs/modules/services/pages/sms.adoc +6 -7
  63. data/docs/modules/services/pages/social_providers.adoc +1 -1
  64. data/docs/modules/services/pages/timestamp.adoc +47 -0
  65. data/lib/decidim/version.rb +1 -1
  66. data/package-lock.json +2413 -2624
  67. data/package.json +3 -2
  68. data/packages/browserslist-config/package.json +1 -1
  69. data/packages/core/package.json +2 -3
  70. data/packages/dev/package.json +2 -2
  71. data/packages/eslint-config/package.json +1 -1
  72. data/packages/prettier-config/package.json +1 -1
  73. data/packages/stylelint-config/package.json +1 -1
  74. data/packages/webpacker/package.json +3 -2
  75. data/packages/webpacker/src/loaders/decidim-sass-loader.js +18 -11
  76. metadata +68 -54
  77. data/docs/modules/develop/pages/endorsable.adoc +0 -110
  78. data/docs/modules/develop/pages/guide_migrate_webpacker_app.adoc +0 -257
  79. data/docs/modules/develop/pages/guide_migrate_webpacker_module.adoc +0 -132
  80. data/docs/modules/develop/pages/metrics.adoc +0 -123
  81. data/docs/modules/develop/pages/troubleshooting_metrics.adoc +0 -255
  82. /data/decidim-core/lib/decidim/{webpacker → shakapacker}/esbuild.config.js +0 -0
  83. /data/decidim-core/lib/decidim/{webpacker → shakapacker}/postcss.config.js +0 -0
  84. /data/decidim-core/lib/decidim/{webpacker → shakapacker}/tsconfig.json +0 -0
  85. /data/decidim-core/lib/decidim/{webpacker → shakapacker}/webpack/.modernizrrc +0 -0
  86. /data/decidim-core/lib/decidim/{webpacker → shakapacker}/webpack/webpack.config.js +0 -0
@@ -0,0 +1,632 @@
1
+ {
2
+ "annotations": {
3
+ "list": [
4
+ {
5
+ "builtIn": 1,
6
+ "datasource": {
7
+ "type": "grafana",
8
+ "uid": "-- Grafana --"
9
+ },
10
+ "enable": true,
11
+ "hide": true,
12
+ "iconColor": "rgba(0, 211, 255, 1)",
13
+ "name": "Annotations & Alerts",
14
+ "type": "dashboard"
15
+ }
16
+ ]
17
+ },
18
+ "description": "An example implementation for the integration between Grafana and Decidim, using the GraphQL API from Decidim.",
19
+ "editable": true,
20
+ "fiscalYearStartMonth": 0,
21
+ "graphTooltip": 0,
22
+ "id": 16,
23
+ "links": [],
24
+ "panels": [
25
+ {
26
+ "datasource": {
27
+ "type": "yesoreyeram-infinity-datasource",
28
+ "uid": "grafanacloud-infinity"
29
+ },
30
+ "fieldConfig": {
31
+ "defaults": {
32
+ "color": {
33
+ "mode": "thresholds"
34
+ },
35
+ "mappings": [],
36
+ "thresholds": {
37
+ "mode": "absolute",
38
+ "steps": [
39
+ {
40
+ "color": "green"
41
+ },
42
+ {
43
+ "color": "red",
44
+ "value": 80
45
+ }
46
+ ]
47
+ }
48
+ },
49
+ "overrides": []
50
+ },
51
+ "gridPos": {
52
+ "h": 8,
53
+ "w": 4,
54
+ "x": 0,
55
+ "y": 0
56
+ },
57
+ "id": 2,
58
+ "options": {
59
+ "minVizHeight": 75,
60
+ "minVizWidth": 75,
61
+ "orientation": "auto",
62
+ "reduceOptions": {
63
+ "calcs": [
64
+ "lastNotNull"
65
+ ],
66
+ "fields": "",
67
+ "values": false
68
+ },
69
+ "showThresholdLabels": false,
70
+ "showThresholdMarkers": true,
71
+ "sizing": "auto"
72
+ },
73
+ "pluginVersion": "12.1.0-87021",
74
+ "targets": [
75
+ {
76
+ "columns": [],
77
+ "datasource": {
78
+ "type": "yesoreyeram-infinity-datasource",
79
+ "uid": "grafanacloud-infinity"
80
+ },
81
+ "filters": [],
82
+ "format": "table",
83
+ "global_query_id": "",
84
+ "parser": "backend",
85
+ "refId": "A",
86
+ "root_selector": "data.participatoryProcesses.id",
87
+ "source": "url",
88
+ "summarizeExpression": "count(A)",
89
+ "type": "graphql",
90
+ "url": "https://meta.decidim.org/api",
91
+ "url_options": {
92
+ "body_content_type": "text/plain",
93
+ "body_graphql_query": "{\n participatoryProcesses {\n id\n slug\n title {\n translations {\n locale\n text\n }\n } \n }\n}\n",
94
+ "body_graphql_variables": "{ }",
95
+ "body_type": "graphql",
96
+ "data": "",
97
+ "method": "POST"
98
+ }
99
+ }
100
+ ],
101
+ "title": "Participatory Processes",
102
+ "transformations": [
103
+ {
104
+ "id": "convertFieldType",
105
+ "options": {
106
+ "conversions": [
107
+ {
108
+ "dateFormat": "",
109
+ "destinationType": "time",
110
+ "targetField": "key"
111
+ }
112
+ ],
113
+ "fields": {}
114
+ }
115
+ }
116
+ ],
117
+ "type": "gauge"
118
+ },
119
+ {
120
+ "datasource": {
121
+ "type": "yesoreyeram-infinity-datasource",
122
+ "uid": "grafanacloud-infinity"
123
+ },
124
+ "fieldConfig": {
125
+ "defaults": {
126
+ "color": {
127
+ "mode": "thresholds"
128
+ },
129
+ "mappings": [],
130
+ "thresholds": {
131
+ "mode": "absolute",
132
+ "steps": [
133
+ {
134
+ "color": "green"
135
+ },
136
+ {
137
+ "color": "red",
138
+ "value": 80
139
+ }
140
+ ]
141
+ }
142
+ },
143
+ "overrides": []
144
+ },
145
+ "gridPos": {
146
+ "h": 8,
147
+ "w": 4,
148
+ "x": 4,
149
+ "y": 0
150
+ },
151
+ "id": 3,
152
+ "options": {
153
+ "minVizHeight": 75,
154
+ "minVizWidth": 75,
155
+ "orientation": "auto",
156
+ "reduceOptions": {
157
+ "calcs": [
158
+ "lastNotNull"
159
+ ],
160
+ "fields": "",
161
+ "values": false
162
+ },
163
+ "showThresholdLabels": false,
164
+ "showThresholdMarkers": true,
165
+ "sizing": "auto"
166
+ },
167
+ "pluginVersion": "12.1.0-87021",
168
+ "targets": [
169
+ {
170
+ "columns": [],
171
+ "datasource": {
172
+ "type": "yesoreyeram-infinity-datasource",
173
+ "uid": "grafanacloud-infinity"
174
+ },
175
+ "filters": [],
176
+ "format": "table",
177
+ "global_query_id": "",
178
+ "parser": "backend",
179
+ "refId": "A",
180
+ "root_selector": "data.assemblies.id",
181
+ "source": "url",
182
+ "summarizeExpression": "count(A)",
183
+ "type": "graphql",
184
+ "url": "https://meta.decidim.org/api",
185
+ "url_options": {
186
+ "body_content_type": "text/plain",
187
+ "body_graphql_query": "{\n assemblies {\n id\n slug\n title {\n translations {\n locale\n text\n }\n } \n }\n}\n",
188
+ "body_graphql_variables": "{ }",
189
+ "body_type": "graphql",
190
+ "data": "",
191
+ "method": "POST"
192
+ }
193
+ }
194
+ ],
195
+ "title": "Assemblies",
196
+ "transformations": [
197
+ {
198
+ "id": "convertFieldType",
199
+ "options": {
200
+ "conversions": [
201
+ {
202
+ "dateFormat": "",
203
+ "destinationType": "time",
204
+ "targetField": "key"
205
+ }
206
+ ],
207
+ "fields": {}
208
+ }
209
+ }
210
+ ],
211
+ "type": "gauge"
212
+ },
213
+ {
214
+ "datasource": {
215
+ "type": "yesoreyeram-infinity-datasource",
216
+ "uid": "grafanacloud-infinity"
217
+ },
218
+ "fieldConfig": {
219
+ "defaults": {
220
+ "color": {
221
+ "mode": "thresholds"
222
+ },
223
+ "custom": {
224
+ "align": "auto",
225
+ "cellOptions": {
226
+ "type": "auto"
227
+ },
228
+ "inspect": false
229
+ },
230
+ "mappings": [],
231
+ "thresholds": {
232
+ "mode": "absolute",
233
+ "steps": [
234
+ {
235
+ "color": "green"
236
+ },
237
+ {
238
+ "color": "red",
239
+ "value": 80
240
+ }
241
+ ]
242
+ }
243
+ },
244
+ "overrides": []
245
+ },
246
+ "gridPos": {
247
+ "h": 14,
248
+ "w": 12,
249
+ "x": 12,
250
+ "y": 0
251
+ },
252
+ "id": 4,
253
+ "options": {
254
+ "cellHeight": "sm",
255
+ "footer": {
256
+ "countRows": false,
257
+ "fields": "",
258
+ "reducer": [
259
+ "sum"
260
+ ],
261
+ "show": false
262
+ },
263
+ "showHeader": true
264
+ },
265
+ "pluginVersion": "12.1.0-87021",
266
+ "targets": [
267
+ {
268
+ "columns": [
269
+ {
270
+ "selector": "id",
271
+ "text": "id",
272
+ "type": "string"
273
+ },
274
+ {
275
+ "selector": "slug",
276
+ "text": "slug",
277
+ "type": "string"
278
+ },
279
+ {
280
+ "selector": "title.translations",
281
+ "text": "Title",
282
+ "type": "string"
283
+ }
284
+ ],
285
+ "datasource": {
286
+ "type": "yesoreyeram-infinity-datasource",
287
+ "uid": "grafanacloud-infinity"
288
+ },
289
+ "filters": [],
290
+ "format": "table",
291
+ "global_query_id": "",
292
+ "parser": "backend",
293
+ "refId": "A",
294
+ "root_selector": "data.participatoryProcesses",
295
+ "source": "url",
296
+ "summarizeExpression": "",
297
+ "type": "graphql",
298
+ "url": "https://meta.decidim.org/api",
299
+ "url_options": {
300
+ "body_content_type": "text/plain",
301
+ "body_graphql_query": "{\n participatoryProcesses {\n id\n slug\n title {\n translations {\n locale\n text\n }\n } \n }\n}\n",
302
+ "body_graphql_variables": "{ }",
303
+ "body_type": "graphql",
304
+ "data": "",
305
+ "method": "POST"
306
+ }
307
+ }
308
+ ],
309
+ "title": "Participatory Processes",
310
+ "transformations": [
311
+ {
312
+ "id": "convertFieldType",
313
+ "options": {
314
+ "conversions": [
315
+ {
316
+ "dateFormat": "",
317
+ "destinationType": "time",
318
+ "targetField": "key"
319
+ }
320
+ ],
321
+ "fields": {}
322
+ }
323
+ }
324
+ ],
325
+ "type": "table"
326
+ },
327
+ {
328
+ "datasource": {
329
+ "type": "yesoreyeram-infinity-datasource",
330
+ "uid": "grafanacloud-infinity"
331
+ },
332
+ "fieldConfig": {
333
+ "defaults": {
334
+ "color": {
335
+ "mode": "thresholds"
336
+ },
337
+ "custom": {
338
+ "align": "auto",
339
+ "cellOptions": {
340
+ "type": "auto"
341
+ },
342
+ "inspect": false
343
+ },
344
+ "mappings": [],
345
+ "thresholds": {
346
+ "mode": "absolute",
347
+ "steps": [
348
+ {
349
+ "color": "green"
350
+ },
351
+ {
352
+ "color": "red",
353
+ "value": 80
354
+ }
355
+ ]
356
+ }
357
+ },
358
+ "overrides": []
359
+ },
360
+ "gridPos": {
361
+ "h": 11,
362
+ "w": 12,
363
+ "x": 0,
364
+ "y": 8
365
+ },
366
+ "id": 6,
367
+ "options": {
368
+ "cellHeight": "sm",
369
+ "footer": {
370
+ "countRows": false,
371
+ "fields": "",
372
+ "reducer": [
373
+ "sum"
374
+ ],
375
+ "show": false
376
+ },
377
+ "showHeader": true
378
+ },
379
+ "pluginVersion": "12.1.0-87021",
380
+ "targets": [
381
+ {
382
+ "columns": [],
383
+ "datasource": {
384
+ "type": "yesoreyeram-infinity-datasource",
385
+ "uid": "grafanacloud-infinity"
386
+ },
387
+ "filters": [],
388
+ "format": "table",
389
+ "global_query_id": "",
390
+ "parser": "backend",
391
+ "refId": "A",
392
+ "root_selector": "data.component.proposals.edges",
393
+ "source": "url",
394
+ "summarizeExpression": "",
395
+ "type": "graphql",
396
+ "url": "https://meta.decidim.org/api",
397
+ "url_options": {
398
+ "body_content_type": "text/plain",
399
+ "body_graphql_query": "{\n component(id: 122) {\n ... on Proposals {\n proposals(order: {publishedAt: \"desc\"}) {\n edges {\n node {\n id\n title {\n translations {\n locale\n text\n }\n }\n createdAt\n }\n }\n }\n }\n }\n}",
400
+ "body_graphql_variables": "{ }",
401
+ "body_type": "graphql",
402
+ "data": "",
403
+ "method": "POST"
404
+ }
405
+ }
406
+ ],
407
+ "title": "Proposals on Roadmap process",
408
+ "transformations": [
409
+ {
410
+ "id": "filterByValue",
411
+ "options": {
412
+ "filters": [
413
+ {
414
+ "config": {
415
+ "id": "notEqual",
416
+ "options": {
417
+ "value": "null"
418
+ }
419
+ },
420
+ "fieldName": "node"
421
+ }
422
+ ],
423
+ "match": "any",
424
+ "type": "include"
425
+ }
426
+ },
427
+ {
428
+ "id": "extractFields",
429
+ "options": {
430
+ "delimiter": ",",
431
+ "format": "json",
432
+ "jsonPaths": [
433
+ {
434
+ "path": "id"
435
+ },
436
+ {
437
+ "path": "createdAt"
438
+ },
439
+ {
440
+ "alias": "title",
441
+ "path": "title.translations[0].text"
442
+ }
443
+ ],
444
+ "replace": true,
445
+ "source": "node"
446
+ }
447
+ }
448
+ ],
449
+ "type": "table"
450
+ },
451
+ {
452
+ "datasource": {
453
+ "type": "yesoreyeram-infinity-datasource",
454
+ "uid": "grafanacloud-infinity"
455
+ },
456
+ "fieldConfig": {
457
+ "defaults": {
458
+ "color": {
459
+ "mode": "palette-classic"
460
+ },
461
+ "custom": {
462
+ "axisBorderShow": false,
463
+ "axisCenteredZero": false,
464
+ "axisColorMode": "text",
465
+ "axisLabel": "",
466
+ "axisPlacement": "auto",
467
+ "barAlignment": 0,
468
+ "barWidthFactor": 0.6,
469
+ "drawStyle": "line",
470
+ "fillOpacity": 0,
471
+ "gradientMode": "none",
472
+ "hideFrom": {
473
+ "legend": false,
474
+ "tooltip": false,
475
+ "viz": false
476
+ },
477
+ "insertNulls": false,
478
+ "lineInterpolation": "linear",
479
+ "lineWidth": 1,
480
+ "pointSize": 5,
481
+ "scaleDistribution": {
482
+ "type": "linear"
483
+ },
484
+ "showPoints": "auto",
485
+ "spanNulls": false,
486
+ "stacking": {
487
+ "group": "A",
488
+ "mode": "none"
489
+ },
490
+ "thresholdsStyle": {
491
+ "mode": "off"
492
+ }
493
+ },
494
+ "mappings": [],
495
+ "thresholds": {
496
+ "mode": "absolute",
497
+ "steps": [
498
+ {
499
+ "color": "green"
500
+ },
501
+ {
502
+ "color": "red",
503
+ "value": 80
504
+ }
505
+ ]
506
+ }
507
+ },
508
+ "overrides": []
509
+ },
510
+ "gridPos": {
511
+ "h": 8,
512
+ "w": 12,
513
+ "x": 0,
514
+ "y": 19
515
+ },
516
+ "id": 1,
517
+ "options": {
518
+ "legend": {
519
+ "calcs": [],
520
+ "displayMode": "list",
521
+ "placement": "bottom",
522
+ "showLegend": true
523
+ },
524
+ "tooltip": {
525
+ "hideZeros": false,
526
+ "mode": "single",
527
+ "sort": "none"
528
+ }
529
+ },
530
+ "pluginVersion": "12.1.0-87021",
531
+ "targets": [
532
+ {
533
+ "columns": [],
534
+ "datasource": {
535
+ "type": "yesoreyeram-infinity-datasource",
536
+ "uid": "grafanacloud-infinity"
537
+ },
538
+ "filters": [],
539
+ "format": "table",
540
+ "global_query_id": "",
541
+ "parser": "backend",
542
+ "refId": "A",
543
+ "root_selector": "data.metrics.history",
544
+ "source": "url",
545
+ "type": "graphql",
546
+ "url": "https://meta.decidim.org/api",
547
+ "url_options": {
548
+ "body_content_type": "text/plain",
549
+ "body_graphql_query": "{\n metrics(names: \"users\") {\n history {\n key\n value\n }\n }\n}\n",
550
+ "body_graphql_variables": "{ }",
551
+ "body_type": "graphql",
552
+ "data": "",
553
+ "method": "POST"
554
+ }
555
+ }
556
+ ],
557
+ "title": "Users in Metrics' history",
558
+ "transformations": [
559
+ {
560
+ "id": "convertFieldType",
561
+ "options": {
562
+ "conversions": [
563
+ {
564
+ "dateFormat": "",
565
+ "destinationType": "time",
566
+ "targetField": "key"
567
+ }
568
+ ],
569
+ "fields": {}
570
+ }
571
+ }
572
+ ],
573
+ "type": "timeseries"
574
+ }
575
+ ],
576
+ "preload": false,
577
+ "schemaVersion": 41,
578
+ "tags": [
579
+ "decidim"
580
+ ],
581
+ "templating": {
582
+ "list": [
583
+ {
584
+ "current": {
585
+ "text": "\"\"",
586
+ "value": "\"\""
587
+ },
588
+ "datasource": {
589
+ "type": "yesoreyeram-infinity-datasource",
590
+ "uid": "grafanacloud-infinity"
591
+ },
592
+ "definition": "",
593
+ "description": "",
594
+ "name": "cursor",
595
+ "options": [],
596
+ "query": {
597
+ "infinityQuery": {
598
+ "columns": [],
599
+ "filters": [],
600
+ "format": "table",
601
+ "refId": "variable",
602
+ "root_selector": "",
603
+ "source": "url",
604
+ "type": "json",
605
+ "url": "https://meta.decidim.org/api",
606
+ "url_options": {
607
+ "data": "",
608
+ "method": "GET"
609
+ }
610
+ },
611
+ "query": "",
612
+ "queryType": "random",
613
+ "values": [
614
+ "\"\""
615
+ ]
616
+ },
617
+ "refresh": 1,
618
+ "regex": "",
619
+ "type": "query"
620
+ }
621
+ ]
622
+ },
623
+ "time": {
624
+ "from": "2024-07-02T11:00:00.000Z",
625
+ "to": "2026-07-02T10:59:59.998Z"
626
+ },
627
+ "timepicker": {},
628
+ "timezone": "browser",
629
+ "title": "Metadecidim - GraphQL example",
630
+ "uid": "cee4f9hzwv0g0d",
631
+ "version": 3
632
+ }
@@ -1,11 +1,21 @@
1
1
  = API
2
2
 
3
- Decidim comes with a powerful API in read-only mode based in the GraphQL specification.
3
+ Decidim comes with a powerful API in read-only mode based on in the https://spec.graphql.org/[GraphQL specification].
4
4
 
5
5
  Documentation for this API is auto-generated in each instance of Decidim, usually under the URL:
6
6
 
7
7
  `https://example.org/api/docs`
8
8
 
9
- Accessing that URL will give a full details of all the objects that can be requested and how. It includes the full field types reference.
9
+ Accessing that URL will give a full details of all the objects that can be requested and how. It includes the full field types reference. Note that the API can be slightly different for different Decidim instances and versions.
10
+
11
+ For example, you can see the Decidim demo application API documentation under the following URL:
12
+
13
+ `https://try.decidim.org/api/docs`
10
14
 
11
15
  As an alternative, if you cannot access that URL on your instance you can read about how this work https://github.com/decidim/decidim/blob/develop/decidim-api/docs/usage.md[Using the Decidim GraphQL API].
16
+
17
+ == Integrating external applications with the API
18
+
19
+ By default, the GraphQL API in Decidim is publically available for read-only operations and it can also be used by external applications to read data from Decidim. If you want to write data over the API, i.e. perform GraphQL mutations, you need first need to authenticate the API user to perform these operations. Otherwise, it is not possible to perform such operations as most such operations are performed as an actual user in Decidim.
20
+
21
+ More information regarding implementing the API authentication is available in the API documentation of your Decidim instance.
@@ -45,7 +45,7 @@ Most commonly used concerns are:
45
45
  - `xref:develop:authorable.adoc[Decidim::Authorable]`
46
46
  - `xref:develop:authorable.adoc[Decidim::Coauthorable]`
47
47
  - `Decidim::DownloadYourData`
48
- - `xref:develop:endorsable.adoc[Decidim::Endorsable]`
48
+ - `xref:develop:likeable.adoc[Decidim::likeable]`
49
49
  - `Decidim::FilterableResource`
50
50
  - `Decidim::Fingerprintable`
51
51
  - `xref:develop:followable.adoc[Decidim::Followable]`
@@ -90,7 +90,7 @@ Most commonly used concerns are:
90
90
  - `Decidim::Proposals::CommentableCollaborativeDraft`
91
91
  - `Decidim::Proposals::CommentableProposal`
92
92
  - `Decidim::Proposals::ParticipatoryTextSection`
93
- - `Decidim::Proposals::Valuatable`
93
+ - `Decidim::Proposals::Evaluable`
94
94
  - `Decidim::Templates::Templatable`
95
95
 
96
96
  == More information