You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
With this release, we remove some legacy specialties around Database Settings and provide better Admin API endpoints for them.
4
+
5
+
Most important changes:
6
+
7
+
1. Setting `BuiltinUsers.KEY` was renamed to `:BuiltinUsersKey`, aligned with our general naming pattern for options.
8
+
2. Setting `:TabularIngestSizeLimit` no longer uses suffixes for formats and becomes a JSON-based setting instead.
9
+
3. If set, both settings will be migrated to their new form automatically for you (Flyway migration).
10
+
4. You can no longer (accidentally) create or use arbitrary setting names or languages.
11
+
All Admin API endpoints for settings now validate setting names and languages for existence and compliance.
12
+
13
+
As an administrator of a Dataverse instance, you can now make use of enhanced Bulk Operations on the Settings Admin API:
14
+
15
+
1. Retrieving all settings as JSON via `GET /api/admin/settings` supports localized options now, too.
16
+
2. You can replace all existing settings in an idempotent way sending JSON to `PUT /api/admin/settings`.
17
+
This will create, update and remove settings as necessary in one atomic operation.
18
+
The new endpoint is especially useful to admins using GitOps or other automations.
19
+
It allows control over all Database Settings from a single source without risking an undefined state.
20
+
21
+
Note: Despite the validation of setting names and languages, the content of any database setting is still not being validated when using the Settings Admin API!
Copy file name to clipboardExpand all lines: doc/sphinx-guides/source/api/native-api.rst
+33-5Lines changed: 33 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6530,7 +6530,11 @@ If the PID is not managed by Dataverse, this call will report if the PID is reco
6530
6530
Admin
6531
6531
-----
6532
6532
6533
-
This is the administrative part of the API. For security reasons, it is absolutely essential that you block it before allowing public access to a Dataverse installation. Blocking can be done using settings. See the ``post-install-api-block.sh`` script in the ``scripts/api`` folder fordetails. See :ref:`blocking-api-endpoints`in Securing Your Installation section of the Configuration page of the Installation Guide.
6533
+
This is the administrative part of the API.
6534
+
For security reasons, it is absolutely essential that you block it before allowing public access to a Dataverse installation.
6535
+
Blocking can be done using settings.
6536
+
See the ``post-install-api-block.sh`` script in the ``scripts/api`` folder for details.
6537
+
See :ref:`blocking-api-endpoints`in Securing Your Installation section of the Configuration page of the Installation Guide.
6534
6538
6535
6539
List All Database Settings
6536
6540
~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -6539,27 +6543,51 @@ List all settings::
6539
6543
6540
6544
GET http://$SERVER/api/admin/settings
6541
6545
6542
-
Configure Database Setting
6543
-
~~~~~~~~~~~~~~~~~~~~~~~~~~
6546
+
.. _settings_put_bulk:
6547
+
6548
+
Configure All Database Settings
6549
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
6550
+
6551
+
Replace all settings in a single idempotent and atomic operation::
6552
+
6553
+
PUT http://$SERVER/api/admin/settings
6554
+
6555
+
See JSON ``data`` object in output of ``GET /api/admin/settings``for the JSON input structure for this endpoint.
6556
+
The :doc:`../installation/config` page of the Installation Guide has a :ref:`complete list of all the available settings <database-settings>`.
6557
+
6558
+
Configure Single Database Setting
6559
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
6544
6560
6545
6561
Sets setting ``name`` to the body of the request::
6546
6562
6547
6563
PUT http://$SERVER/api/admin/settings/$name
6548
6564
6565
+
Sets a localized setting ``name``for locale/language ``lang`` to the body of the request::
6566
+
6567
+
PUT http://$SERVER/api/admin/settings/$name/lang/$lang
6568
+
6549
6569
Get Single Database Setting
6550
6570
~~~~~~~~~~~~~~~~~~~~~~~~~~~
6551
6571
6552
6572
Get the setting under ``name``::
6553
6573
6554
6574
GET http://$SERVER/api/admin/settings/$name
6555
6575
6556
-
Delete Database Setting
6557
-
~~~~~~~~~~~~~~~~~~~~~~~
6576
+
Gets a localized setting under ``name``for locale/language ``lang``::
6577
+
6578
+
GET http://$SERVER/api/admin/settings/$name/lang/$lang
6579
+
6580
+
Delete Single Database Setting
6581
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
6558
6582
6559
6583
Delete the setting under ``name``::
6560
6584
6561
6585
DELETE http://$SERVER/api/admin/settings/$name
6562
6586
6587
+
Delete a localized setting under ``name``for locale/language ``lang``::
Copy file name to clipboardExpand all lines: doc/sphinx-guides/source/installation/config.rst
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3824,6 +3824,8 @@ The most commonly used configuration options are listed first.
3824
3824
3825
3825
The pattern you will observe in curl examples below is that an HTTP ``PUT`` is used to add or modify a setting. If you perform an HTTP ``GET`` (the default when using curl), the output will contain the value of the setting, if it has been set. You can also do a ``GET`` of all settings with ``curl http://localhost:8080/api/admin/settings`` which you may want to pretty-print by piping the output through a tool such as jq by appending ``| jq .``. If you want to remove a setting, use an HTTP ``DELETE`` such as ``curl -X DELETE http://localhost:8080/api/admin/settings/:GuidesBaseUrl`` .
3826
3826
3827
+
For your convenience, there is also an Admin API endpoint to :ref:`bulk manage database settings in an atomic, idempotent fashion <settings_put_bulk>`.
0 commit comments