Authentication is required and the user must be an admin.
Configuration options:
-
+
* `[:auth, :enforce_oauth_admin_scope_usage]` — OAuth admin scope requirement toggle.
If `true`, admin actions explicitly demand admin OAuth scope(s) presence in OAuth token (client app must support admin scopes).
If `false` and token doesn't have admin scope(s), `is_admin` user flag grants access to admin-specific actions.
- 404 Not Found `"Not found"`
- On success: 200 OK `{}`
-## `GET /api/pleroma/admin/config/migrate_to_db`
-
-### Run mix task pleroma.config migrate_to_db
-
-Copies `pleroma` environment settings to the database.
-
-- Params: none
-- Response:
-
-```json
-{}
-```
-
-## `GET /api/pleroma/admin/config/migrate_from_db`
+## `GET /api/pleroma/admin/restart`
-### Run mix task pleroma.config migrate_from_db
-
-Copies all settings from database to `config/{env}.exported_from_db.secret.exs` with deletion from the table. Where `{env}` is the environment in which `pleroma` is running.
+### Restarts pleroma application
- Params: none
- Response:
+ - On failure:
+ - 400 Bad Request `"To use this endpoint you need to enable configuration from database."`
```json
{}
## `GET /api/pleroma/admin/config`
-### Get saved config settings
+### Get list of merged default settings with saved in database.
-**Only works when `:dynamic_configuration` is `true`.**
+**Only works when configuration from database is enabled.**
-- Params: none
+- Params:
+ - `only_db`: true (*optional*, get only saved in database settings)
- Response:
+ - On failure:
+ - 400 Bad Request `"To use this endpoint you need to enable configuration from database."`
```json
{
### Update config settings
-**Only works when `:dynamic_configuration` is `true`.**
+**Only works when configuration from database is enabled.**
Some modifications are necessary to save the config settings correctly:
```
":pleroma" -> :pleroma
```
-- objects with `tuple` key and array value will be converted to atoms;
+- objects with `tuple` key and array value will be converted to tuples;
```
{"tuple": ["string", "Pleroma.Upload", []]} -> {"string", Pleroma.Upload, []}
```
-- arrays with *tuple objects* and 2 childs in array will be converted to keywords;
+- arrays with *tuple objects* will be converted to keywords;
```
[{"tuple": [":key1", "value"]}, {"tuple": [":key2", "value"]}] -> [key1: "value", key2: "value"]
```
- all settings inside these keys:
- `:hackney_pools`
- `:chat`
- - `Pleroma.Web.Endpoint`
- partially settings inside these keys:
- `:seconds_valid` in `Pleroma.Captcha`
- `:proxy_remote` in `Pleroma.Upload`
config :tesla, :adapter, Tesla.Adapter.Hackney
```
-List of settings which have list in value:
+List of settings which support only full update by key:
```elixir
@full_key_update [
{:pleroma, :ecto_repos},
{:mime, :types},
{:cors_plug, [:max_age, :methods, :expose, :headers]},
{:auto_linker, :opts},
- {:swarm, :node_blacklist}
+ {:swarm, :node_blacklist},
+ {:logger, :backends}
+ ]
+```
+
+List of settings which support only full update by subkey:
+```elixir
+@full_subkey_update [
+ {:pleroma, :assets, :mascots},
+ {:pleroma, :emoji, :groups},
+ {:pleroma, :workers, :retries},
+ {:pleroma, :mrf_subchain, :match_actor},
+ {:pleroma, :mrf_keyword, :replace}
]
```
{"tuple": [":proxy_opts", [
{"tuple": [":redirect_on_failure", false]},
{"tuple": [":max_body_length", 1048576]},
- {"tuple": [":http": [
+ {"tuple": [":http", [
{"tuple": [":follow_redirect", true]},
{"tuple": [":pool", ":upload"]},
]]}
```
- Response:
-
+ - On failure:
+ - 400 Bad Request `"To use this endpoint you need to enable configuration from database."`
```json
{
configs: [