kibana/docs/api
elena-shostak c8608461ae
Bulk Role Endpoint (#189173)
## Summary

This PR adds a new `POST security/roles` API that can be used to bulk
create or update roles.

## How to test
1. Create empty roles
```
POST kbn:/api/security/roles
{
  "roles": {
    "bulk_role_1": {},
    "bulk_role_2": {}
  }
}
```
<details>
  <summary>2. Create roles with Kibana and ES privileges</summary>
  
    POST kbn:/api/security/roles
    {
      "roles": {
        "bulk_role_with_privilege_1": {
          "elasticsearch": {
            "cluster": ["manage"],
            "indices": [
              {
                "names": ["logstash-*"],
                "privileges": ["read", "view_index_metadata"]
              }
            ],
            "run_as": ["watcher_user"]
          },
          "kibana": [
            {
              "base": ["read"]
            },
            {
              "feature": {
                "dashboard": ["read"],
                "discover": ["all"],
                "ml": ["all"]
              },
              "spaces": ["marketing", "sales"]
            }
          ]
        },
        "bulk_role_with_privilege_2": {
          "elasticsearch": {
            "cluster": ["manage"],
            "indices": [
              {
                "names": ["logstash-*"],
                "privileges": ["read", "view_index_metadata"]
              }
            ],
            "run_as": ["watcher_user"]
          },
          "kibana": [
            {
              "base": ["read"]
            },
            {
              "feature": {
                "dashboard": ["read"],
                "discover": ["all"],
                "ml": ["all"]
              },
              "spaces": ["marketing", "sales"]
            }
          ]
        }
      }
    }
</details>
<details>
  <summary>3. Create roles failing validation </summary>
  
    POST kbn:/api/security/roles
    {
      "roles": {
        "bulk_role_es_invalid": {
          "elasticsearch": {
            "cluster": ["bla"]
          }
        },
        "bulk_role_kibana_invalid": {
          "kibana": [
            {
              "spaces": ["bar-space"],
              "base": [],
              "feature": {
                "fleetv2": ["all", "read"]
              }
            }
          ]
        },
        "bulk_role_valid": {
          "elasticsearch": {
            "cluster": ["all"]
          }
        }
      }
    }
</details>
<details>
<summary>4. Check validation for license (under basic license should
return security_exception) </summary>
  
  
    POST kbn:/api/security/roles
    {
      "roles": {
        "role_with_privileges_dls_fls": {
          "metadata": {
            "foo": "test-metadata"
          },
          "elasticsearch": {
            "cluster": ["manage"],
            "indices": [
              {
                "field_security": {
                  "grant": ["*"],
                  "except": ["geo.*"]
                },
                "names": ["logstash-*"],
                "privileges": ["read", "view_index_metadata"],
                "query": "{ \"match\": { \"geo.src\": \"CN\" } }"
              }
            ],
            "run_as": ["watcher_user"]
          }
        }
      }
    }

</details>

### Checklist

- [x]
[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)
was added for features that require explanation or tutorials
- [x] [Unit or functional
tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)
were updated or added to match the most common scenarios
- [x] [Flaky Test
Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was
used on any tests changed

__Fixes: https://github.com/elastic/kibana/issues/187427__

## Release Notes
Added API endpoint `POST security/roles` that can be used to bulk create
or update roles.

---------

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2024-08-08 14:33:25 +02:00
..
actions-and-connectors [OAS] Add details for running Slack connector actions (#169712) 2024-02-13 16:00:15 -07:00
alerting [OAS] Adds alerts data to get rule types API (#170702) 2024-01-23 11:03:30 -07:00
cases [Cases][Docs] Add case template overview (#187815) 2024-07-17 18:05:29 +01:00
dashboard [Security Solution] [Sourcerer] [Feature Branch] Update to use Kibana Data Views (#114806) 2021-11-04 14:51:32 -06:00
data-views [DOCS][OAS] Add data view swap saved object references and preview APIs (#187927) 2024-07-24 17:31:06 -05:00
index-patterns [data views] Allow data view rename via rest api (#141869) 2022-09-27 06:56:46 -05:00
logstash-configuration-management Add a note that if list pipelines exceeds 10k, Kibana faces performan… (#131992) 2022-05-11 16:24:16 -07:00
machine-learning [DOCS] Remove OAS API previews (#168761) 2023-10-17 07:49:23 -07:00
osquery-manager [DOCS] Documents Osquery Timeout setting (#174595) 2024-01-17 15:29:23 +00:00
role-management Bulk Role Endpoint (#189173) 2024-08-08 14:33:25 +02:00
saved-objects Remove mention of config SO types from SO.create API docs. (#168538) 2023-10-17 09:40:49 -06:00
session-management Expose session invalidation API. (#92376) 2021-03-24 09:54:08 +01:00
short-urls Short url docs (#113084) 2021-10-12 19:46:58 +02:00
spaces-management [Spaces] Passing default solution from cloud onboarding process (#185926) 2024-06-18 11:10:52 +02:00
synthetics Update the docs to clarify the ID of the private location created (#184818) 2024-06-05 14:36:03 +01:00
task-manager Fix task manager polling flow controls (#153491) 2023-05-03 09:33:10 -04:00
upgrade-assistant Fixed some typos (#125802) 2022-03-02 16:40:34 -06:00
uptime [Uptime] Settings public API (#163400) 2023-10-23 06:14:37 -07:00
actions-and-connectors.asciidoc Add open API specification for list connector types (#145951) 2022-11-24 11:30:51 -07:00
alerting.asciidoc [DOCS] Add prereqs to mute unmute alert APIs (#141337) 2022-09-22 13:48:12 -07:00
cases.asciidoc [DOCS] Add stub for find case activity API (#152041) 2023-02-28 18:16:33 +01:00
dashboard-api.asciidoc [data views] data view api docs - index patterns => data views (#119415) 2021-12-01 07:32:05 -06:00
data-views.asciidoc [DOCS][OAS] Add data view swap saved object references and preview APIs (#187927) 2024-07-24 17:31:06 -05:00
features.asciidoc Timelion App removal (#110255) 2021-09-10 14:53:07 +03:00
index-patterns.asciidoc [DOCS] Add deprecated index pattern APIs (#124065) 2022-01-31 15:47:25 -08:00
logstash-configuration-management.asciidoc
machine-learning.asciidoc [DOCS] Add machine learning sync API (#112033) 2021-09-21 08:33:48 -07:00
osquery-manager.asciidoc [Osquery] Add docs for Osquery API (#137162) 2022-08-09 18:43:31 +02:00
role-management.asciidoc Bulk Role Endpoint (#189173) 2024-08-08 14:33:25 +02:00
saved-objects.asciidoc API docs: Add deprecation warning to all deprecated Saved Object APIs (#150267) 2023-02-07 09:28:13 -07:00
session-management.asciidoc Expose session invalidation API. (#92376) 2021-03-24 09:54:08 +01:00
short-urls.asciidoc Short url docs (#113084) 2021-10-12 19:46:58 +02:00
spaces-management.asciidoc Document update objects spaces API (#145109) 2022-11-15 16:55:58 +00:00
upgrade-assistant.asciidoc [DOCS] Adds missing add default field API (#86332) 2020-12-17 13:59:56 -06:00
uptime-api.asciidoc [Uptime] Settings public API (#163400) 2023-10-23 06:14:37 -07:00